diff options
Diffstat (limited to 'gdb/x86-linux-nat.h')
-rw-r--r-- | gdb/x86-linux-nat.h | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/gdb/x86-linux-nat.h b/gdb/x86-linux-nat.h index 383bfd5..0bafaaa 100644 --- a/gdb/x86-linux-nat.h +++ b/gdb/x86-linux-nat.h @@ -21,6 +21,44 @@ #define X86_LINUX_NAT_H 1 #include "gdb_proc_service.h" /* For ps_err_e. */ +#include "linux-nat.h" +#include "x86-nat.h" + +struct x86_linux_nat_target : public x86_nat_target<linux_nat_target> +{ + virtual ~x86_linux_nat_target () override = 0; + + /* Override the GNU/Linux inferior startup hook. */ + void post_startup_inferior (ptid_t) override; + + /* Add the description reader. */ + const struct target_desc *read_description () override; + + struct btrace_target_info *enable_btrace (ptid_t ptid, + const struct btrace_config *conf) override; + void disable_btrace (struct btrace_target_info *tinfo) override; + void teardown_btrace (struct btrace_target_info *tinfo) override; + enum btrace_error read_btrace (struct btrace_data *data, + struct btrace_target_info *btinfo, + enum btrace_read_type type) override; + const struct btrace_config *btrace_conf (const struct btrace_target_info *) override; + + /* These two are rewired to low_ versions. linux-nat.c queries + stopped-by-watchpoint info as soon as an lwp stops (via the low_ + methods) and caches the result, to be returned via the normal + non-low methods. */ + int stopped_by_watchpoint () override + { return linux_nat_target::stopped_by_watchpoint (); } + + int stopped_data_address (CORE_ADDR *addr_p) override + { return linux_nat_target::stopped_data_address (addr_p); } + + int low_stopped_by_watchpoint () override + { return x86_nat_target::stopped_by_watchpoint (); } + + int low_stopped_data_address (CORE_ADDR *addr_p) override + { return x86_nat_target::stopped_data_address (addr_p); } +}; @@ -32,12 +70,8 @@ extern ps_err_e x86_linux_get_thread_area (pid_t pid, void *addr, unsigned int *base_addr); -/* Create an x86 GNU/Linux target. */ - -extern struct target_ops *x86_linux_create_target (void); - /* Add an x86 GNU/Linux target. */ -extern void x86_linux_add_target (struct target_ops *t); +extern void x86_linux_add_target (linux_nat_target *t); #endif |