diff options
author | Doug Evans <dje@google.com> | 2011-05-10 16:53:23 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2011-05-10 16:53:23 +0000 |
commit | 84e578fbe67910f19ed0bbbc4e8aebd0f87c462a (patch) | |
tree | 913caccda7e412c55dba0287b11d7a797d54f7b0 | |
parent | 7e665af3af6fdf33dfcbecaa95ccdaa34b285008 (diff) | |
download | gdb-84e578fbe67910f19ed0bbbc4e8aebd0f87c462a.zip gdb-84e578fbe67910f19ed0bbbc4e8aebd0f87c462a.tar.gz gdb-84e578fbe67910f19ed0bbbc4e8aebd0f87c462a.tar.bz2 |
* linux-thread-db.c (set_libthread_db_search_path): New function.
(_initialize_thread_db): Add setter for libthread-db-search-path.
gdbserver/
* thread-db.c (thread_db_handle_monitor_command): Handle elided path.
doc/
* gdb.texinfo (Threads): If an empty path is provided for
libthread-db-search-path it is reset to its default value.
(Server): Ditto.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 4 | ||||
-rw-r--r-- | gdb/gdbserver/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/gdbserver/thread-db.c | 11 | ||||
-rw-r--r-- | gdb/linux-thread-db.c | 17 |
6 files changed, 41 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6a130b6..4cf559c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2011-05-10 Doug Evans <dje@google.com> + + * linux-thread-db.c (set_libthread_db_search_path): New function. + (_initialize_thread_db): Add setter for libthread-db-search-path. + 2011-05-09 Doug Evans <dje@google.com> * NEWS: Mention --with-iconv-bin. diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index e9990c2..0dd6806 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,9 @@ +2011-05-10 Doug Evans <dje@google.com> + + * gdb.texinfo (Threads): If an empty path is provided for + libthread-db-search-path it is reset to its default value. + (Server): Ditto. + 2011-05-09 Doug Evans <dje@google.com> * gdb.texinfo (Requirements): Fix typo. Mention --with-iconv-bin. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 65172b5..9ccc48a 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -2855,7 +2855,7 @@ watchpoints in programs with multiple threads. If this variable is set, @var{path} is a colon-separated list of directories @value{GDBN} will use to search for @code{libthread_db}. If you omit @var{path}, @samp{libthread-db-search-path} will be reset to -an empty list. +its default value. On @sc{gnu}/Linux and Solaris systems, @value{GDBN} uses a ``helper'' @code{libthread_db} library to obtain information about threads in the @@ -16369,7 +16369,7 @@ protocol (@pxref{Remote Protocol}). When this command is issued, @var{path} is a colon-separated list of directories to search for @code{libthread_db} (@pxref{Threads,,set libthread-db-search-path}). If you omit @var{path}, -@samp{libthread-db-search-path} will be reset to an empty list. +@samp{libthread-db-search-path} will be reset to its default value. @item monitor exit Tell gdbserver to exit immediately. This command should be followed by diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index a29ee23..bea804d 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,7 @@ +2011-05-10 Doug Evans <dje@google.com> + + * thread-db.c (thread_db_handle_monitor_command): Handle elided path. + 2011-05-04 Doug Evans <dje@google.com> * linux-low.c (linux_join): Skip process lookup. diff --git a/gdb/gdbserver/thread-db.c b/gdb/gdbserver/thread-db.c index 529516e..872151e 100644 --- a/gdb/gdbserver/thread-db.c +++ b/gdb/gdbserver/thread-db.c @@ -916,9 +916,14 @@ thread_db_mourn (struct process_info *proc) int thread_db_handle_monitor_command (char *mon) { - if (strncmp (mon, "set libthread-db-search-path ", 29) == 0) + const char *cmd = "set libthread-db-search-path"; + size_t cmd_len = strlen (cmd); + + if (strncmp (mon, cmd, cmd_len) == 0 + && (mon[cmd_len] == '\0' + || mon[cmd_len] == ' ')) { - const char *cp = mon + 29; + const char *cp = mon + cmd_len; if (libthread_db_search_path != NULL) free (libthread_db_search_path); @@ -927,6 +932,8 @@ thread_db_handle_monitor_command (char *mon) while (isspace (*cp)) ++cp; + if (*cp == '\0') + cp = LIBTHREAD_DB_SEARCH_PATH; libthread_db_search_path = xstrdup (cp); monitor_output ("libthread-db-search-path set to `"); diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c index 2700a65..4203518 100644 --- a/gdb/linux-thread-db.c +++ b/gdb/linux-thread-db.c @@ -75,6 +75,17 @@ static char *libthread_db_search_path; +static void +set_libthread_db_search_path (char *ignored, int from_tty, + struct cmd_list_element *c) +{ + if (*libthread_db_search_path == '\0') + { + xfree (libthread_db_search_path); + libthread_db_search_path = xstrdup (LIBTHREAD_DB_SEARCH_PATH); + } +} + /* If non-zero, print details of libthread_db processing. */ static int libthread_db_debug; @@ -1719,8 +1730,10 @@ _initialize_thread_db (void) Set search path for libthread_db."), _("\ Show the current search path or libthread_db."), _("\ This path is used to search for libthread_db to be loaded into \ -gdb itself."), - NULL, +gdb itself.\n\ +Its value is a colon (':') separate list of directories to search.\n\ +Setting the search path to an empty list resets it to its default value."), + set_libthread_db_search_path, NULL, &setlist, &showlist); |