tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Gdb misdetects threads (SA_ONSTACK?)
In article <Y7RojV3yuWZl7lRO%pony.stderr.spb.ru@localhost>,
Valery Ushakov <uwe%stderr.spb.ru@localhost> wrote:
>On Tue, Jan 03, 2023 at 15:20:22 +0300, Valery Ushakov wrote:
>
>> 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 ...
>
>I didn't try to make a minimized reproducer, sorry. I pushed my work
>to github, so you can grab
>
> https://github.com/nbuwe/self/tree/feature/netbsd-i386
>
>and build it with
>
> cmake -B build-nb-debug -DCMAKE_BUILD_TYPE=Debug .
> cmake --build build-nb-debug --verbose -- VERBOSE=1 # add -j to taste
>
>then
>
> cd build-nb-debug/vm
> gdb -q --args ./Self
>
>when it shows the prompt, hit ^C and:
>
>
>VM# [New process 17956]
>^C
>Thread 2 received signal SIGINT, Interrupt.
>[Switching to process 17956]
>0xbae4f777 in read () from /usr/lib/libc.so.12
>(gdb) info threads
> Id Target Id Frame
> 1 LWP 17956 of process 17956 "" 0xbae4f777 in read ()
> from /usr/lib/libc.so.12
>* 2 process 17956 0xbae4f777 in read ()
> from /usr/lib/libc.so.12
>(gdb) s
>Single stepping until exit from function read,
>which has no line number information.
>[New process 17956]
>[New process 17956]
>/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*):
>A problem internal to GDB has been detected,
>further debugging may prove unreliable.
>Quit this debugging session? (y or n)
Is that i386 code on x86_64? I tried to build on amd64 and it did not link:
ld: skipping incompatible /usr/X11R7/lib/libX11.so when searching for -lX11
ld: skipping incompatible /usr/X11R7/lib/libX11.a when searching for -lX11
ld: cannot find -lX11: No such file or directory
ld: skipping incompatible /usr/X11R7/lib/libX11.so when searching for -lX11
ld: skipping incompatible /usr/X11R7/lib/libXext.so when searching for -lXext
ld: skipping incompatible /usr/X11R7/lib/libXext.a when searching for -lXext
ld: cannot find -lXext: No such file or directory
ld: skipping incompatible /usr/X11R7/lib/libXext.so when searching for -lXext
ld: skipping incompatible /usr/pkg/lib/libncurses.so when searching for -lncurses
ld: skipping incompatible /usr/pkg/lib/libncurses.a when searching for -lncurses
ld: cannot find -lncurses: No such file or directory
ld: skipping incompatible /usr/pkg/lib/libncurses.so when searching for -lncurses
--- vm/Self ---
christos
Home |
Main Index |
Thread Index |
Old Index