diff options
author | Paul Pluzhnikov <ppluzhnikov@google.com> | 2009-10-09 00:31:01 +0000 |
---|---|---|
committer | Paul Pluzhnikov <ppluzhnikov@google.com> | 2009-10-09 00:31:01 +0000 |
commit | cdbfd4198ec38a42766a578d4058bd752d25011c (patch) | |
tree | f0495b9a586fdff1e5205ec37e0c3748c9cb9c21 /gdb/gdbserver/server.c | |
parent | 37e124c9c30152b6833198a8c283c533c7b1fcce (diff) | |
download | gdb-cdbfd4198ec38a42766a578d4058bd752d25011c.zip gdb-cdbfd4198ec38a42766a578d4058bd752d25011c.tar.gz gdb-cdbfd4198ec38a42766a578d4058bd752d25011c.tar.bz2 |
doc/
2009-10-08 Paul Pluzhnikov <ppluzhnikov@google.com>
* gdb.texinfo (Server): Document libthread-db-search-path.
gdbserver/
2009-10-08 Paul Pluzhnikov <ppluzhnikov@google.com>
* acinclude.m4: (SRV_CHECK_THREAD_DB, SRV_CHECK_TLS_GET_ADDR): Remove.
* configure.ac: Adjust.
* linux-low.h (struct process_info_private): Move members to struct
thread_db.
(thread_db_free, thread_db_handle_monitor_command): New prototype.
* linux-low.c (linux_remove_process): Adjust.
(linux_wait_for_event_1, linux_look_up_symbols): Likewise.
* server.c (handle_query): Move code ...
(handle_monitor_command): ... here. New function.
* target.h (struct target_ops): New member.
* thread-db.c (struct thread_db): New.
(libthread_db_search_path): New variable.
(thread_db_create_event, thread_db_enable_reporting)
(find_one_thread, maybe_attach_thread, find_new_threads_callback)
(thread_db_find_new_threads, (thread_db_get_tls_address): Adjust.
(try_thread_db_load_1, dladdr_to_soname): New functions.
(try_thread_db_load, thread_db_load_search): New functions.
(thread_db_init): Search for libthread_db.
(thread_db_free): New function.
(thread_db_handle_monitor_command): Likewise.
* config.in: Regenerate.
* configure: Regenerate.
Diffstat (limited to 'gdb/gdbserver/server.c')
-rw-r--r-- | gdb/gdbserver/server.c | 91 |
1 files changed, 51 insertions, 40 deletions
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index d704180..9bf4f3d 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -660,6 +660,53 @@ handle_search_memory (char *own_buf, int packet_len) return; \ } +/* Handle monitor commands not handled by target-specific handlers. */ + +static void +handle_monitor_command (char *mon) +{ + if (strcmp (mon, "set debug 1") == 0) + { + debug_threads = 1; + monitor_output ("Debug output enabled.\n"); + } + else if (strcmp (mon, "set debug 0") == 0) + { + debug_threads = 0; + monitor_output ("Debug output disabled.\n"); + } + else if (strcmp (mon, "set debug-hw-points 1") == 0) + { + debug_hw_points = 1; + monitor_output ("H/W point debugging output enabled.\n"); + } + else if (strcmp (mon, "set debug-hw-points 0") == 0) + { + debug_hw_points = 0; + monitor_output ("H/W point debugging output disabled.\n"); + } + else if (strcmp (mon, "set remote-debug 1") == 0) + { + remote_debug = 1; + monitor_output ("Protocol debug output enabled.\n"); + } + else if (strcmp (mon, "set remote-debug 0") == 0) + { + remote_debug = 0; + monitor_output ("Protocol debug output disabled.\n"); + } + else if (strcmp (mon, "help") == 0) + monitor_show_help (); + else if (strcmp (mon, "exit") == 0) + exit_requested = 1; + else + { + monitor_output ("Unknown monitor command.\n\n"); + monitor_show_help (); + write_enn (own_buf); + } +} + /* Handle all of the extended 'q' packets. */ void handle_query (char *own_buf, int packet_len, int *new_packet_len_p) @@ -1211,46 +1258,10 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p) write_ok (own_buf); - if (strcmp (mon, "set debug 1") == 0) - { - debug_threads = 1; - monitor_output ("Debug output enabled.\n"); - } - else if (strcmp (mon, "set debug 0") == 0) - { - debug_threads = 0; - monitor_output ("Debug output disabled.\n"); - } - else if (strcmp (mon, "set debug-hw-points 1") == 0) - { - debug_hw_points = 1; - monitor_output ("H/W point debugging output enabled.\n"); - } - else if (strcmp (mon, "set debug-hw-points 0") == 0) - { - debug_hw_points = 0; - monitor_output ("H/W point debugging output disabled.\n"); - } - else if (strcmp (mon, "set remote-debug 1") == 0) - { - remote_debug = 1; - monitor_output ("Protocol debug output enabled.\n"); - } - else if (strcmp (mon, "set remote-debug 0") == 0) - { - remote_debug = 0; - monitor_output ("Protocol debug output disabled.\n"); - } - else if (strcmp (mon, "help") == 0) - monitor_show_help (); - else if (strcmp (mon, "exit") == 0) - exit_requested = 1; - else - { - monitor_output ("Unknown monitor command.\n\n"); - monitor_show_help (); - write_enn (own_buf); - } + if (the_target->handle_monitor_command == NULL + || (*the_target->handle_monitor_command) (mon) == 0) + /* Default processing. */ + handle_monitor_command (mon); free (mon); return; |