From 8dd06f7a89b6eb7b646349f50746b3d2e85ed5de Mon Sep 17 00:00:00 2001 From: Don Breazeal Date: Thu, 28 May 2015 14:26:03 -0700 Subject: [PATCH] Make remote follow fork 'Detaching' message match native This patch fixes a couple of failures in gdb.base/foll-vfork.exp for extended-remote targets. The failures were the result of the verbose/debug "Detaching..." messages in infrun.c:follow_fork_inferior not matching what was expected in the extended-remote case. The path modifies the ptids used in the messages to ensure that they print "process nnn" instead of (possibly) "Thread nnn.nnn". The detach is a process-wide operation, so we need to use a process- style ptid regardless of what type of ptid target_pid_to_str returns. Tested on x86_64 GNU/Linux, native, remote, extended-remote. gdb/ * infrun.c (follow_fork_inferior): Ensure the use of process-style ptids (pid,0,0) in verbose/debug "Detaching" messages. --- gdb/ChangeLog | 6 ++++++ gdb/infrun.c | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bd0292bec53..ab10166a27d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2015-05-28 Don Breazeal + + * infrun.c (follow_fork_inferior): Ensure the use of + process-style ptids (pid,0,0) in verbose/debug "Detaching" + messages. + 2015-05-28 Doug Evans * dwarf2read.c (record_line_ftype): Remove, duplicate. diff --git a/gdb/infrun.c b/gdb/infrun.c index 2f6bc41d0b7..d8eb0b0f34b 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -445,11 +445,14 @@ holding the child stopped. Try \"set detach-on-fork\" or \ if (info_verbose || debug_infrun) { + /* Ensure that we have a process ptid. */ + ptid_t process_ptid = pid_to_ptid (ptid_get_pid (child_ptid)); + target_terminal_ours_for_output (); fprintf_filtered (gdb_stdlog, _("Detaching after %s from child %s.\n"), has_vforked ? "vfork" : "fork", - target_pid_to_str (child_ptid)); + target_pid_to_str (process_ptid)); } } else @@ -578,11 +581,14 @@ holding the child stopped. Try \"set detach-on-fork\" or \ { if (info_verbose || debug_infrun) { + /* Ensure that we have a process ptid. */ + ptid_t process_ptid = pid_to_ptid (ptid_get_pid (child_ptid)); + target_terminal_ours_for_output (); fprintf_filtered (gdb_stdlog, _("Detaching after fork from " "child %s.\n"), - target_pid_to_str (child_ptid)); + target_pid_to_str (process_ptid)); } target_detach (NULL, 0); -- 2.30.2