/* GNU/Linux/ARM specific low level interface, for the remote server for GDB.
- Copyright (C) 1995-2020 Free Software Foundation, Inc.
+ Copyright (C) 1995-2021 Free Software Foundation, Inc.
This file is part of GDB.
bool supports_z_point_type (char z_type) override;
+ bool supports_hardware_single_step () override;
+
protected:
void low_arch_setup () override;
void low_delete_thread (arch_lwp_info *) override;
void low_new_fork (process_info *parent, process_info *child) override;
+
+ void low_prepare_to_resume (lwp_info *lwp) override;
+
+ bool low_supports_catch_syscall () override;
+
+ void low_get_syscall_trapinfo (regcache *regcache, int *sysno) override;
};
/* The singleton target ops object. */
/* Called when resuming a thread.
If the debug regs have changed, update the thread's copies. */
-static void
-arm_prepare_to_resume (struct lwp_info *lwp)
+void
+arm_target::low_prepare_to_resume (lwp_info *lwp)
{
struct thread_info *thread = get_lwp_thread (lwp);
int pid = lwpid_of (thread);
/* Support for hardware single step. */
-static int
-arm_supports_hardware_single_step (void)
+bool
+arm_target::supports_hardware_single_step ()
{
- return 0;
+ return false;
}
-/* Implementation of linux_target_ops method "get_syscall_trapinfo". */
+bool
+arm_target::low_supports_catch_syscall ()
+{
+ return true;
+}
-static void
-arm_get_syscall_trapinfo (struct regcache *regcache, int *sysno)
+/* Implementation of linux target ops method "low_get_syscall_trapinfo". */
+
+void
+arm_target::low_get_syscall_trapinfo (regcache *regcache, int *sysno)
{
if (arm_is_thumb_mode ())
collect_register_by_name (regcache, "r7", sysno);
collect_register_by_name (regcache, "pc", &pc);
- if (the_target->read_memory (pc - 4, (unsigned char *) &insn, 4))
+ if (read_memory (pc - 4, (unsigned char *) &insn, 4))
*sysno = UNKNOWN_SYSCALL;
else
{
return ®s_info_arm;
}
-struct linux_target_ops the_low_target = {
- arm_prepare_to_resume,
- NULL, /* process_qsupported */
- NULL, /* supports_tracepoints */
- NULL, /* get_thread_area */
- NULL, /* install_fast_tracepoint_jump_pad */
- NULL, /* emit_ops */
- NULL, /* get_min_fast_tracepoint_insn_len */
- NULL, /* supports_range_stepping */
- arm_supports_hardware_single_step,
- arm_get_syscall_trapinfo,
-};
-
/* The linux target ops object. */
linux_process_target *the_linux_target = &the_arm_target;