diff options
Diffstat (limited to 'gdb/inf-child.c')
-rw-r--r-- | gdb/inf-child.c | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/gdb/inf-child.c b/gdb/inf-child.c index 8e5ebfa..2f5babe 100644 --- a/gdb/inf-child.c +++ b/gdb/inf-child.c @@ -39,6 +39,18 @@ #include <fcntl.h> #include <unistd.h> +static const target_info inf_child_target_info = { + "native", + N_("Native process"), + N_("Native process (started by the \"run\" command).") +}; + +const target_info & +inf_child_target::info () const +{ + return inf_child_target_info; +} + /* Helper function for child_wait and the derivatives of child_wait. HOSTSTATUS is the waitstatus from wait() or the equivalent; store our translation of that in OURSTATUS. */ @@ -139,9 +151,14 @@ static int inf_child_explicitly_opened; /* See inf-child.h. */ void -inf_child_open_target (struct target_ops *target, const char *arg, - int from_tty) +inf_child_open_target (const char *arg, int from_tty) { + target_ops *target = get_native_target (); + + /* There's always only ever one native target, and if we get here, + it better be an inf-child target. */ + gdb_assert (dynamic_cast<inf_child_target *> (target) != NULL); + target_preopen (from_tty); push_target (target); inf_child_explicitly_opened = 1; @@ -149,12 +166,6 @@ inf_child_open_target (struct target_ops *target, const char *arg, printf_filtered ("Done. Use the \"run\" command to start a process.\n"); } -void -inf_child_target::open (const char *arg, int from_tty) -{ - inf_child_open_target (this, arg, from_tty); -} - /* Implement the to_disconnect target_ops method. */ void @@ -426,3 +437,12 @@ inf_child_target::inf_child_target () { this->to_stratum = process_stratum; } + +/* See inf-child.h. */ + +void +add_inf_child_target (inf_child_target *target) +{ + set_native_target (target); + add_target (inf_child_target_info, inf_child_open_target); +} |