X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Finf-child.h;h=21162cb5b2cfc3c7c5fe56d7da0c2a2f802b4126;hb=873657b9e824943ae44c12966c29cbbcd21c986f;hp=99173edfbe8b7e939f2a687e142d28dd121a2609;hpb=f6ac5f3d63e03a81c4ff3749aba234961cc9090e;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/inf-child.h b/gdb/inf-child.h index 99173edfbe..21162cb5b2 100644 --- a/gdb/inf-child.h +++ b/gdb/inf-child.h @@ -1,6 +1,6 @@ /* Base/prototype target for default child (native) targets. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -21,27 +21,20 @@ #define INF_CHILD_H #include "target.h" +#include "process-stratum-target.h" /* A prototype child target. The client can override it with local methods. */ class inf_child_target - : public memory_breakpoint_target + : public memory_breakpoint_target { public: - inf_child_target (); + inf_child_target () = default; ~inf_child_target () override = 0; - const char *shortname () override - { return "native"; } + const target_info &info () const override; - const char *longname () override - { return _("Native process"); } - - const char *doc () override - { return _("Native process (started by the \"run\" command)."); } - - void open (const char *arg, int from_tty) override; void close () override; void disconnect (const char *, int) override; @@ -54,6 +47,7 @@ public: bool supports_terminal_ours () override; void terminal_init () override; void terminal_inferior () override; + void terminal_save_inferior () override; void terminal_ours_for_output () override; void terminal_ours () override; void terminal_info (const char *, int) override; @@ -65,7 +59,7 @@ public: void mourn_inferior () override; - int can_run () override; + bool can_run () override; bool can_create_inferior () override; void create_inferior (const char *, const std::string &, @@ -76,20 +70,8 @@ public: void post_attach (int) override; - /* We must default these because they must be implemented by any - target that can run. */ - int can_async_p () override { return 0; } - int supports_non_stop () override { return 0; } - int supports_disable_randomization () override { return 0; } - char *pid_to_exec_file (int pid) override; - int has_all_memory () override; - int has_memory () override; - int has_stack () override; - int has_registers () override; - int has_execution (ptid_t) override; - int fileio_open (struct inferior *inf, const char *filename, int flags, int mode, int warn_if_slow, int *target_errno) override; @@ -105,9 +87,9 @@ public: gdb::optional fileio_readlink (struct inferior *inf, const char *filename, int *target_errno) override; - int use_agent (int use) override; + bool use_agent (bool use) override; - int can_use_agent () override; + bool can_use_agent () override; protected: /* Unpush the target if it wasn't explicitly open with "target native" @@ -124,4 +106,13 @@ protected: /* This is for native targets which use a unix/POSIX-style waitstatus. */ extern void store_waitstatus (struct target_waitstatus *, int); +/* Register TARGET as native target and set it up to respond to the + "target native" command. */ +extern void add_inf_child_target (inf_child_target *target); + +/* target_open_ftype callback for inf-child targets. Used by targets + that want to register an alternative target_info object. Most + targets use add_inf_child_target instead. */ +extern void inf_child_open_target (const char *arg, int from_tty); + #endif