I have a gdbserver on a target, that I launch like gdbserver :2345 /bin/ls
. Next I am connect a gdb from a host, and trying issue next commands:
(gdb) target remote 192.168.1.2:2345
Remote debugging using 192.168.1.2:2345
warning: Architecture rejected target-supplied description
[New Thread 686]
(gdb) Remote 'g' packet reply is too long: 00000000c10ed6be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d00dd6be0000000030fe0d40100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
(gdb) i thr
Id Target Id Frame
* 1 Thread 686 (running)
(gdb) interrupt
(gdb) interrupt 1
(gdb) interrupt 2
(gdb) i thr
Id Target Id Frame
* 1 Thread 686 (running)
(gdb) bt
Target is executing.
(gdb) c
Continuing.
Cannot execute this command while the selected thread is running.
I thought that may be the reason of a broken gdb is the weird message, tried to Google. Found two assumptions. Here's a man supposes that the gdb (despite IMHO that on the target is running the gdbserver that should send an abstract arch-independent commands) need the architecture that it is debugs to be set. But it doesn't work:
(gdb) set architecture armv7-a
Undefined item: "armv7-a".
(gdb) set architecture armv7
Undefined item: "armv7".
(gdb) set architecture armv5te
Undefined item: "armv5te".
I didn't found any command that could list supported architectures. The second assumption was that the gdbserver itself needs to be configured with a mythological option --with-expat
. But... configure: WARNING: unrecognized options: --with-expat
I have no more ideas. So, do anybody knows: how to interrupt the thread on the target?(Btw, breakpoints could be set just fine, but it doesn't help at all, because seems that the gdb is lying about a running thread. If the thread would running, the being debugged ls
just gone immediately.)