Subject: Re: bug#22301: 25.1.50; Emacs crashes while lisp debugging

From: Vincent Belaïche <[email-masked]>
Date: Tue, 05 Jan 2016 08:17:17 +0100

Dear Éli,

Something I had forgotten to tell you: I think that I have compiled this
Emacs with Mingw-w64 --- well I am not 100% sure now because at some
point of time I had problems with Minfw-64 (see
https://sourceforge.net/p/mingw-w64/bugs/519/) and I have re-installed
the 32 bit version (both coexist now on my machine and I select the one
in use by editing the fstab file).

Anyway, I still don't get the debugger prompt, neither Ctrl-C (well C-Q
C-C because I am running it from Emacs), nor F-12 do anything. However,
if I do:

  M-x signal-process RET
  shell RET
  3 RET

then something happens with the debugger, I did it several times, I
still don't get the prompt, but there is that sort of output:

  Program received signal SIGTRAP, Trace/breakpoint trap

So below, I copied the full gdb session with these. Please make me know
whether this session is ruined or not.

Le 05/01/2016 04:34, Eli Zaretskii a écrit :
>> From: Vincent Belaïche <[email-masked]>
>> Cc: Vincent Belaïche <[email-masked]> ,
>>  [email-masked]
>> Date: Mon, 04 Jan 2016 23:49:53 +0100
>>

[...]

>> Please note that I don't get again the debugger prompt --- I am running
>> the debugger from an Emacs shell buffer, could it be some interaction
>> that the buffer process sentinel could not capture ? Anyway, I am
>> keeping the gdb session open, as you asked...
>
> Do you get the GDB prompt back if you press F-12 or Ctrl-C?  If not,
> this session is ruined, and you can stop it.
>
> Next time when it happens, type these commands instead:
>
>   (gdb) thread 1
>   (gdb) bt
>
> Better yet, run Emacs from GDB to begin with, it will make the
> backtrace more reliable.
>
> Thanks.

Here is the full session (you already got the beginning of it):

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
$ gdb -p 11676
GNU gdb (GDB) 7.6.1
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Attaching to process 11676
[New Thread 11676.0x1edc]
[New Thread 11676.0x2f4]
[New Thread 11676.0x2c48]
[New Thread 11676.0x1ec8]
[New Thread 11676.0x267c]
[New Thread 11676.0x2aa0]
[New Thread 11676.0x430]
Reading symbols from C:\Nos_Programmes\GNU\Emacs\bin\emacs.exe...done.
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from terminal]
DISPLAY = w32
TERM = emacs
Breakpoint 1 at 0x10951bb: file emacs.c, line 370.
Temporary breakpoint 2 at 0x10aabd6: file sysdep.c, line 901.
(gdb) bt full
#0  0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#1  0x771e9e09 in ntdll!DbgUiRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#2  0xfb32daaf in ?? ()
No symbol table info available.
#3  0x771e9dd0 in ntdll!DbgUiIssueRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#4  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
No symbol table info available.
#5  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
No symbol table info available.
#6  0x00000000 in ?? ()
No symbol table info available.

Lisp Backtrace:
"backtrace" (0xbfedac)
"debugger-setup-buffer" (0xbfefe0)
"debug" (0xbff1b4)
"ses-relocate-all" (0xbff200)
"let" (0xbff3bc)
"ses-delete-row" (0xbff598)
"funcall-interactively" (0xbff594)
"call-interactively" (0xbff710)
"command-execute" (0xbff8dc)
(gdb) xbacktrace
"backtrace" (0xbfedac)
"debugger-setup-buffer" (0xbfefe0)
"debug" (0xbff1b4)
"ses-relocate-all" (0xbff200)
"let" (0xbff3bc)
"ses-delete-row" (0xbff598)
"funcall-interactively" (0xbff594)
"call-interactively" (0xbff710)
"command-execute" (0xbff8dc)
(gdb) thread 1
[Switching to thread 1 (Thread 11676.0x1edc)]
#0  SDATA (string=1461725984) at lisp.h:1325
1325	  return XSTRING (string)->data;
(gdb)  thread apply all bt

Thread 7 (Thread 11676.0x430):
#0  0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
#1  0x771e9e09 in ntdll!DbgUiRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#2  0xfb32daaf in ?? ()
#3  0x771e9dd0 in ntdll!DbgUiIssueRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#5  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0x00000000 in ?? ()

Lisp Backtrace:
"backtrace" (0xbfedac)
"debugger-setup-buffer" (0xbfefe0)
"debug" (0xbff1b4)
"ses-relocate-all" (0xbff200)
"let" (0xbff3bc)
"ses-delete-row" (0xbff598)
"funcall-interactively" (0xbff594)
"call-interactively" (0xbff710)
"command-execute" (0xbff8dc)

Thread 6 (Thread 11676.0x2aa0):
#0  0x771b868c in ntdll!ZwWaitForWorkViaWorkerFactory ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#1  0x7718a246 in ntdll!EtwNotificationRegister ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#2  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#3  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x00c844c0 in ?? ()
#5  0x771a568e in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0xffffffff in ?? ()
#7  0x771cb6c3 in ntdll!RtlCaptureContext ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#8  0x00000000 in ?? ()

[New Thread 11676.0x1f00]

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 11676.0x1f00]
0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
(gdb) The program received a signal in another thread while
making a function call from GDB.
Evaluation of the expression containing the function
(backtrace_top) will be abandoned.
When the function is done executing, GDB will silently stop.

Thread 8 (Thread 11676.0x1f00):
#0  0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
#1  0x771e9e09 in ntdll!DbgUiRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#2  0xfb32daaf in ?? ()
#3  0x771e9dd0 in ntdll!DbgUiIssueRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#5  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0x00000000 in ?? ()

Lisp Backtrace:
"backtrace" (0xbfedac)
"debugger-setup-buffer" (0xbfefe0)
"debug" (0xbff1b4)
"ses-relocate-all" (0xbff200)
"let" (0xbff3bc)
"ses-delete-row" (0xbff598)
"funcall-interactively" (0xbff594)
"call-interactively" (0xbff710)
"command-execute" (0xbff8dc)

Thread 6 (Thread 11676.0x2aa0):
#0  backtrace_top () at eval.c:183
#1  <function called from gdb>
#2  0x771b868c in ntdll!ZwWaitForWorkViaWorkerFactory ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#3  0x7718a246 in ntdll!EtwNotificationRegister ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#5  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0x00c844c0 in ?? ()
#7  0x771a568e in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#8  0xffffffff in ?? ()
#9  0x771cb6c3 in ntdll!RtlCaptureContext ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#10 0x00000000 in ?? ()
[New Thread 11676.0x2e80]

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 11676.0x2e80]
0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
(gdb) The program received a signal in another thread while
making a function call from GDB.
Evaluation of the expression containing the function
(backtrace_top) will be abandoned.
When the function is done executing, GDB will silently stop.

Thread 9 (Thread 11676.0x2e80):
#0  0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
#1  0x771e9e09 in ntdll!DbgUiRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#2  0xfb32daaf in ?? ()
#3  0x771e9dd0 in ntdll!DbgUiIssueRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#5  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0x00000000 in ?? ()

Lisp Backtrace:
"backtrace" (0xbfedac)
"debugger-setup-buffer" (0xbfefe0)
"debug" (0xbff1b4)
"ses-relocate-all" (0xbff200)
"let" (0xbff3bc)
"ses-delete-row" (0xbff598)
"funcall-interactively" (0xbff594)
"call-interactively" (0xbff710)
"command-execute" (0xbff8dc)

Thread 6 (Thread 11676.0x2aa0):
#0  backtrace_top () at eval.c:183
#1  <function called from gdb>
#2  backtrace_top () at eval.c:183
#3  <function called from gdb>
#4  0x771b868c in ntdll!ZwWaitForWorkViaWorkerFactory ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#5  0x7718a246 in ntdll!EtwNotificationRegister ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#7  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#8  0x00c844c0 in ?? ()
#9  0x771a568e in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#10 0xffffffff in ?? ()
#11 0x771cb6c3 in ntdll!RtlCaptureContext ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#12 0x00000000 in ?? ()

[New Thread 11676.0x1f78]

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 11676.0x1f78]
0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
(gdb) The program received a signal in another thread while
making a function call from GDB.
Evaluation of the expression containing the function
(backtrace_top) will be abandoned.
When the function is done executing, GDB will silently stop.

Thread 10 (Thread 11676.0x1f78):
#0  0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
#1  0x771e9e09 in ntdll!DbgUiRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#2  0xfb32daaf in ?? ()
#3  0x771e9dd0 in ntdll!DbgUiIssueRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#5  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0x00000000 in ?? ()

Lisp Backtrace:
"backtrace" (0xbfedac)
"debugger-setup-buffer" (0xbfefe0)
"debug" (0xbff1b4)
"ses-relocate-all" (0xbff200)
"let" (0xbff3bc)
"ses-delete-row" (0xbff598)
"funcall-interactively" (0xbff594)
"call-interactively" (0xbff710)
"command-execute" (0xbff8dc)

Thread 6 (Thread 11676.0x2aa0):
#0  backtrace_top () at eval.c:183
#1  <function called from gdb>
#2  backtrace_top () at eval.c:183
#3  <function called from gdb>
#4  backtrace_top () at eval.c:183
#5  <function called from gdb>
#6  0x771b868c in ntdll!ZwWaitForWorkViaWorkerFactory ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#7  0x7718a246 in ntdll!EtwNotificationRegister ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#8  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#9  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#10 0x00c844c0 in ?? ()
#11 0x771a568e in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#12 0xffffffff in ?? ()
#13 0x771cb6c3 in ntdll!RtlCaptureContext ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#14 0x00000000 in ?? ()

[New Thread 11676.0x2134]

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 11676.0x2134]
0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
(gdb) The program received a signal in another thread while
making a function call from GDB.
Evaluation of the expression containing the function
(backtrace_top) will be abandoned.
When the function is done executing, GDB will silently stop.

Thread 11 (Thread 11676.0x2134):
#0  0x771b8c51 in ntdll!DbgBreakPoint () from C:\WINDOWS\SYSTEM32\ntdll.dll
#1  0x771e9e09 in ntdll!DbgUiRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#2  0xfb32daaf in ?? ()
#3  0x771e9dd0 in ntdll!DbgUiIssueRemoteBreakin ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#5  0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0x00000000 in ?? ()

Lisp Backtrace:
"backtrace" (0xbfedac)
"debugger-setup-buffer" (0xbfefe0)
"debug" (0xbff1b4)
"ses-relocate-all" (0xbff200)
"let" (0xbff3bc)
"ses-delete-row" (0xbff598)
"funcall-interactively" (0xbff594)
"call-interactively" (0xbff710)
"command-execute" (0xbff8dc)

Thread 6 (Thread 11676.0x2aa0):
#0  backtrace_top () at eval.c:183
#1  <function called from gdb>
#2  backtrace_top () at eval.c:183
#3  <function called from gdb>
#4  backtrace_top () at eval.c:183
#5  <function called from gdb>
#6  backtrace_top () at eval.c:183
#7  <function called from gdb>
#8  0x771b868c in ntdll!ZwWaitForWorkViaWorkerFactory ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#9  0x7718a246 in ntdll!EtwNotificationRegister ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#10 0x760238f4 in KERNEL32!BaseThreadInitThunk ()
   from C:\WINDOWS\SYSTEM32\kernel32.dll
#11 0x771a56c3 in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#12 0x00c844c0 in ?? ()
#13 0x771a568e in ntdll!RtlUnicodeStringToInteger ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#14 0xffffffff in ?? ()
#15 0x771cb6c3 in ntdll!RtlCaptureContext ()
   from C:\WINDOWS\SYSTEM32\ntdll.dll
#16 0x00000000 in ?? ()

--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

VBR,
	Vincent