Subject: bug#6413: What does ntdll!DbgUiConnectToDbg mean? (on w32)

From: Lennart Borgman <[email-masked]>
Date: Sun, 13 Jun 2010 18:58:25 +0200

I just got this from the gdb running Emacs:

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 372.0xcec]
0x7c90120f in ntdll!DbgUiConnectToDbg () from C:\WINDOWS\system32\ntdll.dll
(gdb) bt
#0  0x7c90120f in ntdll!DbgUiConnectToDbg ()
   from C:\WINDOWS\system32\ntdll.dll
#1  0x7c951e40 in ntdll!KiIntSystemCall () from C:\WINDOWS\system32\ntdll.dll
#2  0x00000005 in ?? ()
#3  0x00000004 in ?? ()
#4  0x00000001 in ?? ()
#5  0x215affd0 in ?? ()
#6  0x00000000 in ?? ()
(gdb) c

Is there anything I can do to look into it further? I can't think of
anything I did in Emacs this time that triggered this so I am a bit
lost.

As I previously mentioned I have added a macro to test system calls
return values and I wonder if this somehow is involved here or if this
is just one of these "doctor watson-crashes" I now and then see, as
seen through gdb.

The macro I added just looks like

  #define W32ASSERT(TEST, WHERE) if (!TEST) DebPrint (("%s: %s\n",
WHERE, w32_strerror(0)))

In the code I write this as something like

  W32ASSERT (0, "w32_SetWindowPos_from_main_thread.PostMessage");

or with 0 replaced by a variable.

This does not look problematic too me, but I wonder if DepPrint can be
called anywhere. Is there some problem calling it inside a BLOCK_INPUT
.. UNBLOCK_INPUT?