aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Rytarowski <n54@gmx.com>2020-04-29 01:57:38 +0200
committerKamil Rytarowski <n54@gmx.com>2020-04-29 20:02:35 +0200
commitf94b2e038757eeefd7351e8122160715d6e3ce3c (patch)
tree9143a58e046373060e481ea9b4ff24b430cca76d /gdb/nbsd-nat.h
parentWhen displaying ranges, ignore duplicate offsets. (diff)
downloadbinutils-gdb-f94b2e038757eeefd7351e8122160715d6e3ce3c.tar.gz
binutils-gdb-f94b2e038757eeefd7351e8122160715d6e3ce3c.tar.bz2
binutils-gdb-f94b2e038757eeefd7351e8122160715d6e3ce3c.zip
Add basic event handling in the NetBSD target
Implement the following events: - single step (TRAP_TRACE) - software breakpoint (TRAP_DBREG) - exec() (TRAP_EXEC) - syscall entry/exit (TRAP_SCE / TRAP_SCX) Add support for NetBSD specific ::wait () and ::resume (). Instruct the generic code that exec and syscall events are supported. Define an empty nbsd_get_syscall_number as it is prerequisite for catching syscall entry and exit events, even if it is unused. This function is used to detect whether the gdbarch supports the 'catch syscall' feature. gdb/ChangeLog: * nbsd-nat.c: Include "sys/wait.h". (nbsd_resume, nbsd_nat_target::resume, nbsd_wait) (nbsd_nat_target::wait, nbsd_nat_target::insert_exec_catchpoint) (nbsd_nat_target::remove_exec_catchpoint) (nbsd_nat_target::set_syscall_catchpoint): Add. * nbsd-nat.h (nbsd_nat_target::resume, nbsd_nat_target::wait) (nbsd_nat_target::insert_exec_catchpoint) (nbsd_nat_target::remove_exec_catchpoint) (nbsd_nat_target::set_syscall_catchpoint): Add. * nbsd-tdep.c (nbsd_get_syscall_number): Add. (nbsd_init_abi): Call `set_gdbarch_get_syscall_number' and pass `nbsd_get_syscall_number'.
Diffstat (limited to 'gdb/nbsd-nat.h')
-rw-r--r--gdb/nbsd-nat.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/gdb/nbsd-nat.h b/gdb/nbsd-nat.h
index 256db4b9017..6e14cbb889d 100644
--- a/gdb/nbsd-nat.h
+++ b/gdb/nbsd-nat.h
@@ -38,6 +38,15 @@ struct nbsd_nat_target : public inf_ptrace_target
int find_memory_regions (find_memory_region_ftype func, void *data) override;
bool info_proc (const char *, enum info_proc_what) override;
+
+ void resume (ptid_t, int, enum gdb_signal) override;
+ ptid_t wait (ptid_t, struct target_waitstatus *, int) override;
+ int insert_exec_catchpoint (int pid) override;
+ int remove_exec_catchpoint (int pid) override;
+ int set_syscall_catchpoint (int pid, bool needed, int any_count,
+ gdb::array_view<const int> syscall_counts)
+ override;
+
};
#endif /* nbsd-nat.h */