summary refs log tree commit diff stats
path: root/gdbstub.c
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-12-18 22:44:04 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-12-18 22:44:04 +0000
commit2b1319c85c94b7defef2ac2191bb50d773c81db4 (patch)
tree14e178eb62fc1cdd9a41f29e4c85509c5e0b6da9 /gdbstub.c
parent6f9c5ee782e983f00e81a7cbd98900bdac9b3e6c (diff)
downloadfocaccia-qemu-2b1319c85c94b7defef2ac2191bb50d773c81db4.tar.gz
focaccia-qemu-2b1319c85c94b7defef2ac2191bb50d773c81db4.zip
User-mode GDB stub improvements - handle fork
Close gdbserver in child processes, so that only one stub tries to talk
to GDB at a time.  Updated from an earlier patch by Paul Brook.

Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6095 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'gdbstub.c')
-rw-r--r--gdbstub.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdbstub.c b/gdbstub.c
index 72feac67bb..2e112b252d 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -1996,6 +1996,18 @@ int gdbserver_start(int port)
     gdb_accept();
     return 0;
 }
+
+/* Disable gdb stub for child processes.  */
+void gdbserver_fork(CPUState *env)
+{
+    GDBState *s = gdbserver_state;
+    if (s->fd < 0)
+      return;
+    close(s->fd);
+    s->fd = -1;
+    cpu_breakpoint_remove_all(env, BP_GDB);
+    cpu_watchpoint_remove_all(env, BP_GDB);
+}
 #else
 static int gdb_chr_can_receive(void *opaque)
 {