diff options
author | Pedro Alves <palves@redhat.com> | 2014-12-16 16:12:23 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2015-01-09 11:25:25 +0000 |
commit | 883ed13e4af121e28de1c0df70a8d66d94a8bc7b (patch) | |
tree | bd39bee4160a845bf518e036c2c45ba3bc1904c7 /gdb | |
parent | 60b3033e6e2936af6fcc37cf67cade99a89940ad (diff) | |
download | gdb-883ed13e4af121e28de1c0df70a8d66d94a8bc7b.zip gdb-883ed13e4af121e28de1c0df70a8d66d94a8bc7b.tar.gz gdb-883ed13e4af121e28de1c0df70a8d66d94a8bc7b.tar.bz2 |
libthread_db: debug output should go to gdb_stdlog
Some debug output in linux-thread-db.c was being sent to gdb_stdout,
and some to gdb_stderr, while the right place to send debug output to is
gdb_stdlog.
gdb/
2015-01-09 Pedro Alves <palves@redhat.com>
* linux-thread-db.c (thread_db_find_new_threads_silently)
(try_thread_db_load_1, try_thread_db_load, thread_db_load_search)
(find_new_threads_once): Print debug output on gdb_stdlog.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/linux-thread-db.c | 40 |
2 files changed, 31 insertions, 15 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7c390e9..6eb4926 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2015-01-09 Pedro Alves <palves@redhat.com> + + * linux-thread-db.c (thread_db_find_new_threads_silently) + (try_thread_db_load_1, try_thread_db_load, thread_db_load_search) + (find_new_threads_once): Print debug output on gdb_stdlog. + 2015-01-09 Chen Gang <gang.chen.5i5j@gmail.com> Pedro Alves <palves@redhat.com> diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c index 1aa1eec..b7afb03 100644 --- a/gdb/linux-thread-db.c +++ b/gdb/linux-thread-db.c @@ -671,7 +671,7 @@ thread_db_find_new_threads_silently (ptid_t ptid) if (except.reason < 0) { if (libthread_db_debug) - exception_fprintf (gdb_stderr, except, + exception_fprintf (gdb_stdlog, except, "Warning: thread_db_find_new_threads_silently: "); /* There is a bug fixed between nptl 2.6.1 and 2.7 by @@ -753,8 +753,8 @@ try_thread_db_load_1 (struct thread_db_info *info) if (err != TD_OK) { if (libthread_db_debug) - printf_unfiltered (_("td_ta_new failed: %s\n"), - thread_db_err_str (err)); + fprintf_unfiltered (gdb_stdlog, _("td_ta_new failed: %s\n"), + thread_db_err_str (err)); else switch (err) { @@ -812,16 +812,22 @@ try_thread_db_load_1 (struct thread_db_info *info) printf_unfiltered (_("[Thread debugging using libthread_db enabled]\n")); - if (libthread_db_debug || *libthread_db_search_path) + if (*libthread_db_search_path || libthread_db_debug) { + struct ui_file *file; const char *library; library = dladdr_to_soname (*info->td_ta_new_p); if (library == NULL) library = LIBTHREAD_DB_SO; - printf_unfiltered (_("Using host libthread_db library \"%s\".\n"), - library); + /* If we'd print this to gdb_stdout when debug output is + disabled, still print it to gdb_stdout if debug output is + enabled. User visible output should not depend on debug + settings. */ + file = *libthread_db_search_path != '\0' ? gdb_stdout : gdb_stdlog; + fprintf_unfiltered (file, _("Using host libthread_db library \"%s\".\n"), + library); } /* The thread library was detected. Activate the thread_db target @@ -846,8 +852,9 @@ try_thread_db_load (const char *library, int check_auto_load_safe) struct thread_db_info *info; if (libthread_db_debug) - printf_unfiltered (_("Trying host libthread_db library: %s.\n"), - library); + fprintf_unfiltered (gdb_stdlog, + _("Trying host libthread_db library: %s.\n"), + library); if (check_auto_load_safe) { @@ -856,7 +863,8 @@ try_thread_db_load (const char *library, int check_auto_load_safe) /* Do not print warnings by file_is_auto_load_safe if the library does not exist at this place. */ if (libthread_db_debug) - printf_unfiltered (_("open failed: %s.\n"), safe_strerror (errno)); + fprintf_unfiltered (gdb_stdlog, _("open failed: %s.\n"), + safe_strerror (errno)); return 0; } @@ -871,7 +879,7 @@ try_thread_db_load (const char *library, int check_auto_load_safe) if (handle == NULL) { if (libthread_db_debug) - printf_unfiltered (_("dlopen failed: %s.\n"), dlerror ()); + fprintf_unfiltered (gdb_stdlog, _("dlopen failed: %s.\n"), dlerror ()); return 0; } @@ -885,7 +893,7 @@ try_thread_db_load (const char *library, int check_auto_load_safe) const char *const libpath = dladdr_to_soname (td_init); if (libpath != NULL) - printf_unfiltered (_("Host %s resolved to: %s.\n"), + fprintf_unfiltered (gdb_stdlog, _("Host %s resolved to: %s.\n"), library, libpath); } } @@ -1076,7 +1084,8 @@ thread_db_load_search (void) do_cleanups (cleanups); if (libthread_db_debug) - printf_unfiltered (_("thread_db_load_search returning %d\n"), rc); + fprintf_unfiltered (gdb_stdlog, + _("thread_db_load_search returning %d\n"), rc); return rc; } @@ -1683,11 +1692,12 @@ find_new_threads_once (struct thread_db_info *info, int iteration, if (libthread_db_debug) { if (except.reason < 0) - exception_fprintf (gdb_stderr, except, + exception_fprintf (gdb_stdlog, except, "Warning: find_new_threads_once: "); - printf_filtered (_("Found %d new threads in iteration %d.\n"), - data.new_threads, iteration); + fprintf_unfiltered (gdb_stdlog, + _("Found %d new threads in iteration %d.\n"), + data.new_threads, iteration); } if (errp != NULL) |