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