summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/exceptions.cc5
2 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index a887b9b77..f2bf25cd4 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,9 @@
2008-02-28 Corinna Vinschen <corinna@vinschen.de>
+ * exceptions.cc (open_stackdumpfile): Add comments.
+
+2008-02-28 Corinna Vinschen <corinna@vinschen.de>
+
* exceptions.cc (open_stackdumpfile): Use NtCreateFile to create
stackdump file.
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index a903852ee..999094d30 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -145,18 +145,21 @@ open_stackdumpfile ()
WCHAR corefile[strlen (p) + sizeof (".stackdump")];
UNICODE_STRING ucore;
OBJECT_ATTRIBUTES attr;
+ /* Create the UNICODE variation of <progname>.stackdump. */
RtlInitEmptyUnicodeString (&ucore, corefile,
sizeof corefile - sizeof (WCHAR));
ucore.Length = sys_mbstowcs (ucore.Buffer,
ucore.MaximumLength / sizeof (WCHAR),
p, strlen (p)) * sizeof (WCHAR);
RtlAppendUnicodeToString (&ucore, L".stackdump");
+ /* Create an object attribute which refers to <progname>.stackdump
+ in Cygwin's cwd. */
InitializeObjectAttributes (&attr, &ucore, OBJ_CASE_INSENSITIVE,
cygheap->cwd.get_handle (), NULL);
HANDLE h;
IO_STATUS_BLOCK io;
NTSTATUS status;
-
+ /* Try to open it to dump the stack in it. */
status = NtCreateFile (&h, GENERIC_WRITE | SYNCHRONIZE, &attr, &io,
NULL, FILE_ATTRIBUTE_NORMAL, 0, FILE_OVERWRITE_IF,
FILE_SYNCHRONOUS_IO_NONALERT