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'.
53 lines
1.7 KiB
C++
53 lines
1.7 KiB
C++
/* Native-dependent code for NetBSD.
|
|
|
|
Copyright (C) 2006-2020 Free Software Foundation, Inc.
|
|
|
|
This file is part of GDB.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef NBSD_NAT_H
|
|
#define NBSD_NAT_H
|
|
|
|
#include "inf-ptrace.h"
|
|
|
|
struct thread_info;
|
|
|
|
/* A prototype NetBSD target. */
|
|
|
|
struct nbsd_nat_target : public inf_ptrace_target
|
|
{
|
|
char *pid_to_exec_file (int pid) override;
|
|
|
|
bool thread_alive (ptid_t ptid) override;
|
|
const char *thread_name (struct thread_info *thr) override;
|
|
void post_attach (int pid) override;
|
|
void update_thread_list () override;
|
|
std::string pid_to_str (ptid_t ptid) override;
|
|
|
|
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 */
|