[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [Bug 1031920] Re: Linux user gdbserver does not respond to
From: |
thierry bultel |
Subject: |
[Qemu-devel] [Bug 1031920] Re: Linux user gdbserver does not respond to remote `Ctrl-C' interrupts |
Date: |
Wed, 14 Oct 2015 15:27:25 -0000 |
I have encountered that issue recently, and started some analysis.
The issue is due to the fact that in qemu, gdbstub no longer reads the
communication channel once
the debugged process is resumed with "cont".
Another way to say that, is that communication with gdb is only possible once
the process thread execution
is re-routed in the gdb handler.
I am working on a fix.
The fix will consist in having an additional thread, launched that the internal
gdbserver startup,
that will be wakeup when the debugged process is resumed.
That thread will be waiting on the communication channel for the eventually
incoming CTRL-C request (0x3)
I start to have promising results but it still needs some testing.
Meanwhile, (this should likely be a separate discussion thread, but is somehow
related with the named issue above) ,
I also noticed that with multithreaded
processes, a breakpoint does not suspend all the threads when it is hit.
This is a little bit annoying, and does not match the expected behaviour that
is typically seen on a pure native gdb debugging
session.
Once it is ready I will post a patch to qemu mailing list
Best regards
Thierry
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1031920
Title:
Linux user gdbserver does not respond to remote `Ctrl-C' interrupts
Status in QEMU:
New
Bug description:
The bug was reproduced in a recent mainline build for ARM Linux by
starting emulation with a gdbserver:
$ qemu-arm -g 1234 a.out
and then connecting from gdb:
(gdb) target remote :1234
Remote debugging using :1234
[New Remote target]
[Switching to Remote target]
0x00008ba8 in _start ()
(gdb) b main
Breakpoint 1 at 0x8cb0: file hello.c, line 5.
(gdb) cont
Continuing.
Breakpoint 1, main (argc=1, argv=0xf6fff24c) at hello.c:5
5 int n = 0;
(gdb) l
1 #include <stdio.h>
2
3 int main (int argc, char **argv)
4 {
5 int n = 0;
6
7 for (;;) {
8 printf ("Hello, World!\n");
9 sleep (5);
10 }
(gdb) cont
Continuing.
^C^CInterrupted while waiting for the program.
Give up (and stop debugging it)? (y or n) y
Notice that the `Ctrl-C' interrupts are ignored.
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1031920/+subscriptions
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [Bug 1031920] Re: Linux user gdbserver does not respond to remote `Ctrl-C' interrupts,
thierry bultel <=