diff options
author | Don Breazeal <donb@codesourcery.com> | 2014-10-24 11:36:06 -0700 |
---|---|---|
committer | Don Breazeal <donb@codesourcery.com> | 2014-10-24 11:36:06 -0700 |
commit | 6f259a235d01fe7b98c8ad6e8edc06d72074a14a (patch) | |
tree | 8fbf3facd088a7510f7f36acd70e1bedd2357940 /gdb/infrun.c | |
parent | 09dd9a6907f0929f2b634e57e68f11a008dfbf68 (diff) | |
download | gdb-6f259a235d01fe7b98c8ad6e8edc06d72074a14a.zip gdb-6f259a235d01fe7b98c8ad6e8edc06d72074a14a.tar.gz gdb-6f259a235d01fe7b98c8ad6e8edc06d72074a14a.tar.bz2 |
Follow-fork message printing improvements
This commit modifies the code that prints attach and detach messages
related to following fork and vfork. The changes include using
target_terminal_ours_for_output instead of target_terminal_ours,
printing "vfork" instead of "fork" for all vfork-related messages,
and using _() for the format strings of all of the messages.
We also add a "detach" message for when a fork parent is detached.
Previously in this case the only message was notification of attaching
to the child. We still do not print any messages when following the
parent and detaching the child (the default). The rationale for this
is that from the user's perspective the new child was never attached.
Note that all of these messages are only printed when 'verbose' is set
or when debugging is turned on.
The tests gdb.base/foll-fork.exp and gdb.base/foll-vfork.exp were
modified to check for the new message.
Tested on x64 Ubuntu Lucid, native only.
gdb/ChangeLog:
* infrun.c (follow_fork_inferior): Update fork message printing
to use target_terminal_ours_for_output instead of
target_terminal_ours, to use _() for all format strings, to print
"vfork" instead of "fork" for vforks, and to add a detach message.
(handle_vfork_child_exec_or_exit): Update message printing to use
target_terminal_ours_for_output instead of target_terminal_ours, to
use _() for all format strings, and to fix some formatting.
gdb/testsuite/ChangeLog:
* gdb.base/foll-fork.exp (test_follow_fork,
catch_fork_child_follow): Check for updated fork messages emitted
from infrun.c.
* gdb.base/foll-vfork.exp (vfork_parent_follow_through_step,
vfork_parent_follow_to_bp, vfork_and_exec_child_follow_to_main_bp,
vfork_and_exec_child_follow_through_step): Check for updated vfork
messages emitted from infrun.c.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r-- | gdb/infrun.c | 60 |
1 files changed, 36 insertions, 24 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c index 23c79f2..90a3123 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -458,10 +458,11 @@ holding the child stopped. Try \"set detach-on-fork\" or \ if (info_verbose || debug_infrun) { - target_terminal_ours (); + target_terminal_ours_for_output (); fprintf_filtered (gdb_stdlog, - "Detaching after fork from " - "child process %d.\n", + _("Detaching after %s from " + "child process %d.\n"), + has_vforked ? "vfork" : "fork", child_pid); } } @@ -546,17 +547,13 @@ holding the child stopped. Try \"set detach-on-fork\" or \ if (info_verbose || debug_infrun) { - target_terminal_ours (); - if (has_vforked) - fprintf_filtered (gdb_stdlog, - _("Attaching after process %d " - "vfork to child process %d.\n"), - parent_pid, child_pid); - else - fprintf_filtered (gdb_stdlog, - _("Attaching after process %d " - "fork to child process %d.\n"), - parent_pid, child_pid); + target_terminal_ours_for_output (); + fprintf_filtered (gdb_stdlog, + _("Attaching after process %d " + "%s to child process %d.\n"), + parent_pid, + has_vforked ? "vfork" : "fork", + child_pid); } /* Add the new inferior first, so that the target_detach below @@ -593,7 +590,18 @@ holding the child stopped. Try \"set detach-on-fork\" or \ parent_inf->waiting_for_vfork_done = 0; } else if (detach_fork) - target_detach (NULL, 0); + { + if (info_verbose || debug_infrun) + { + target_terminal_ours_for_output (); + fprintf_filtered (gdb_stdlog, + _("Detaching after fork from " + "child process %d.\n"), + child_pid); + } + + target_detach (NULL, 0); + } /* Note that the detach above makes PARENT_INF dangling. */ @@ -927,18 +935,22 @@ handle_vfork_child_exec_or_exit (int exec) if (debug_infrun || info_verbose) { - target_terminal_ours (); + target_terminal_ours_for_output (); if (exec) - fprintf_filtered (gdb_stdlog, - "Detaching vfork parent process " - "%d after child exec.\n", - inf->vfork_parent->pid); + { + fprintf_filtered (gdb_stdlog, + _("Detaching vfork parent process " + "%d after child exec.\n"), + inf->vfork_parent->pid); + } else - fprintf_filtered (gdb_stdlog, - "Detaching vfork parent process " - "%d after child exit.\n", - inf->vfork_parent->pid); + { + fprintf_filtered (gdb_stdlog, + _("Detaching vfork parent process " + "%d after child exit.\n"), + inf->vfork_parent->pid); + } } target_detach (NULL, 0); |