aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/server.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2010-05-02 00:47:34 +0000
committerPedro Alves <palves@redhat.com>2010-05-02 00:47:34 +0000
commitf9e39928dc25d4f8ec5cad87c6cea4cd5ef08f58 (patch)
tree630db2ced76156c381815d049c88d847b30506ab /gdb/gdbserver/server.c
parent9dbc5bd27584aef258ea89fb41d21006f59dcfa5 (diff)
downloadgdb-f9e39928dc25d4f8ec5cad87c6cea4cd5ef08f58.zip
gdb-f9e39928dc25d4f8ec5cad87c6cea4cd5ef08f58.tar.gz
gdb-f9e39928dc25d4f8ec5cad87c6cea4cd5ef08f58.tar.bz2
* linux-low.c (linux_kill_one_lwp): Assume the lwp is stopped.
(linux_kill): Stop all lwps here. Don't delete the main lwp here. (linux_detach_one_lwp): Assume the lwp is stopped. (any_thread_of): Delete. (linux_detach): Stop all lwps here. Don't blindly delete all breakpoints. (delete_lwp_callback): New. (linux_mourn): Delete all lwps of the process that is gone. (linux_wait_1): Don't delete the last lwp of the process here. * mem-break.h (mark_breakpoints_out): Declare. * mem-break.c (mark_breakpoints_out): New. (free_all_breakpoints): Use it. * server.c (handle_target_event): If the process is gone, mark breakpoints out. * thread-db.c (struct thread_db) <create_bp>: New field. (thread_db_enable_reporting): Fix prototype. Store a thread event breakpoint reference in the thread_db struct. (thread_db_load_search): Clear the thread_db object. (try_thread_db_load_1): Ditto. (switch_to_process): New. (disable_thread_event_reporting): Use it. (remove_thread_event_breakpoints): New. (thread_db_detach, thread_db_mourn): Use it.
Diffstat (limited to 'gdb/gdbserver/server.c')
-rw-r--r--gdb/gdbserver/server.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 460cb46..ffca397 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -3031,7 +3031,10 @@ handle_target_event (int err, gdb_client_data client_data)
if (last_status.kind == TARGET_WAITKIND_EXITED
|| last_status.kind == TARGET_WAITKIND_SIGNALLED)
- mourn_inferior (process);
+ {
+ mark_breakpoints_out (process);
+ mourn_inferior (process);
+ }
if (forward_event)
{