tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Gdb misdetects threads (SA_ONSTACK?)
On a ~month old current, GNU gdb (GDB) 11.0.50.20200914-git seems to
get very confused. My uninformed guess is it's alternative stacks for
signal handlers that confuse it and make it think a program is
threaded when it's not. E.g.
$ gdb -q --args ./Self ...
Reading symbols from ./Self...
(No debugging symbols found in ./Self)
(gdb) r
...
^C
Thread 2 received signal SIGINT, Interrupt.
[Switching to process 1470]
0x0818be0e in zone::flushZombies() ()
(gdb) info threads
Id Target Id Frame
1 LWP 1470 of process 1470 "" 0x0818be0e in zone::flushZombies() ()
* 2 process 1470 0x0818be0e in zone::flushZombies() ()
(gdb) display/i $eip
1: x/i $eip
=> 0x818be0e <_ZN4zone12flushZombiesEv+86>: mov %eax,-0x20(%ebp)
(gdb) si
[New process 1470]
/home/uwe/work/netbsd/ro/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
(gdb) display/i $eip
1: x/i $eip
=> 0x818be0e <_ZN4zone12flushZombiesEv+86>: mov %eax,-0x20(%ebp)
(gdb) si
[New process 1470]
/home/uwe/work/netbsd/ro/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/infrun.c:5683: internal-error: int finish_step_over(execution_control_state*): Assertion `ecs->event_thread->control.trap_expected' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
-uwe
Home |
Main Index |
Thread Index |
Old Index