binutils-gdb/gdb/testsuite/gdb.server
Andrew Burgess 9d4a934ce6 gdb: Fix assert for extended-remote target (PR gdb/18050)
Consider the following GDB session:

   (gdb) target extended-remote :2347
   (gdb) file /path/to/exe
   (gdb) set remote exec-file /path/to/exe
   (gdb) set detach-on-fork off
   (gdb) break breakpt
   (gdb) run
   # ... hits breakpoint
   (gdb) info inferiors
     Num  Description       Executable
   * 1    process 17001     /path/to/exe
     2    process 17002     /path/to/exe
   (gdb) kill
   (gdb) info inferiors
     Num  Description       Executable
   * 1    <null>            /path/to/exe
     2    process 17002     /path/to/exe
   (gdb) target extended-remote :2348
   ../../src/gdb/thread.c:660: internal-error: thread_info* any_thread_of_process(int): Assertion `pid != 0' failed.
   A problem internal to GDB has been detected,
   further debugging may prove unreliable.

Or, from bug PR gdb/18050:

   (gdb) start
   (gdb) add-inferior -exec /path/to/exe
   (gdb) target extended-remote :2347
   ../../src/gdb/thread.c:660: internal-error: thread_info* any_thread_of_process(int): Assertion `pid != 0' failed.
   A problem internal to GDB has been detected,
   further debugging may prove unreliable.

The issue is calling target.c:dispose_inferior with a killed inferior in
the inferior list.  This assertion is fixed in this commit.

The new test for this issue only runs on platforms that support
'detach-on-fork', and when using
'--target_board=native-extended-gdbserver'.

gdb/ChangeLog:

	PR gdb/18050:
	* target.c (dispose_inferior): Don't dispose of inferiors that are
	already killed.

gdb/testsuite/ChangeLog:

	PR gdb/18050:
	* gdb.server/extended-remote-restart.c: New file.
	* gdb.server/extended-remote-restart.exp: New file.
2018-08-08 13:14:45 +01:00
..
abspath.exp Make gdbserver work with filename-only binaries 2018-02-28 11:37:10 -05:00
connect-stopped-target.c
connect-stopped-target.exp
connect-with-no-symbol-file.c
connect-with-no-symbol-file.exp
connect-without-multi-process.c
connect-without-multi-process.exp
ext-attach.c
ext-attach.exp
ext-restart.exp
ext-run.exp
ext-wrapper.exp
extended-remote-restart.c gdb: Fix assert for extended-remote target (PR gdb/18050) 2018-08-08 13:14:45 +01:00
extended-remote-restart.exp gdb: Fix assert for extended-remote target (PR gdb/18050) 2018-08-08 13:14:45 +01:00
file-transfer.exp
no-thread-db.c
no-thread-db.exp
non-existing-program.exp
normal.c
reconnect-ctrl-c.c
reconnect-ctrl-c.exp
run-without-local-binary.exp Implement IPv6 support for GDB/gdbserver 2018-07-11 19:41:31 -04:00
server-connect.exp Implement IPv6 support for GDB/gdbserver 2018-07-11 19:41:31 -04:00
server-exec-info.exp
server-kill.c
server-kill.exp testsuite: Fix a `server_pid' access crash in gdb.server/server-kill.exp 2018-05-15 15:54:36 +01:00
server-mon.exp
server-run.exp
server.c
solib-list-lib.c
solib-list-main.c
solib-list.exp
stop-reply-no-thread.c Fix backwards compatibility with old GDBservers (PR remote/22597) 2018-01-11 00:23:04 +00:00
stop-reply-no-thread.exp Fix backwards compatibility with old GDBservers (PR remote/22597) 2018-01-11 00:23:04 +00:00
transfer.txt
unittest.exp
wrapper.c
wrapper.exp