Can I use -exec-interrupt to stop the inferior program?
Carlos Eduardo Rodrigues de Almeida
eduardo.almeida@gmail.com
Thu May 18 16:19:00 GMT 2006
I had the same problem a while ago..
I wrote a driver in, C, that received "commands" from the java
application and performed actions in the GDB. There was only 2
"commands" CMD and SIG.
Explaining by example
If I send CMDlist my driver will remove the CMD and send list to GDB,
if I send SIG my driver will send a SIGINT to GDB... it should be
SIGsigno where signo is the number of the signal but not implemented
yet.
In java I have a class that encapsulate the driver and has 2 methods:
sendCommand(String command)
sendSignal(int signo)
If you want I can send you the driver and my java code.
The driver only work in linux
Eduardo
On 5/15/06, Nikolay Molchanov <Nikolay.Molchanov@sun.com> wrote:
> Hello!
>
> I'm looking for a solution how to stop the inferior program,
> which is running under gdb. I can stop it using ^C, but I
> need a solution, that will work for the following case:
>
> Java application
> | ^
> stdin | | stdout
> v |
> GDB debugger (gdb --i mi --tty /dev/pts/2 ...)
> | ^
> v |
> Inferior program <--> External terminal (/dev/pts/28)
>
>
> The action to stop the program is initiated by
> Java application, which cannot send ^C to the
> external terminal. So I have to use stdin to
> tell gdb to stop the inferior program. But gdb
> does not read the "-exec-interrupt" command,
> until the program is stopped
>
>
> sside-linux nikm/t1-exec-interrupt> gdb --i mi --tty /dev/pts/2 t2pl
> ~"GNU gdb 6.1\n"
> ~"Copyright 2004 Free Software Foundation, Inc.\n"
> ~"GDB is free software, covered by the GNU General Public License, and
> you are\n"
> ~"welcome to change it and/or distribute copies of it under certain
> conditions.\n"
> ~"Type \"show copying\" to see the conditions.\n"
> ~"There is absolutely no warranty for GDB. Type \"show warranty\" for
> details.\n"
> ~"This GDB was configured as \"x86_64-suse-linux\"..."
> ~"Using host libthread_db library \"/lib64/tls/libthread_db.so.1\".\n"
> ~"\n"
> (gdb)
> run
> &"run\n"
> -exec-interrupt
> ^done,reason="exited",exit-code="0100"
> (gdb)
> ^error,msg="mi_cmd_exec_interrupt: Inferior not executing."
> (gdb)
>
>
> Perhaps "-exec-interrupt" does not work in gdb 6.1?
> If that's correct, can you tell me which version supports
> "-exec-interrupt"?
>
> Thanks in advance,
> Nikolay Molchanov
>
>
More information about the Gdb
mailing list