@@ -124,6 +124,8 @@ protected:
void low_prepare_to_resume (lwp_info *lwp) override;
int low_get_thread_area (int lwpid, CORE_ADDR *addrp) override;
+
+ bool low_supports_range_stepping () override;
};
/* The singleton target ops object. */
@@ -3111,12 +3113,12 @@ aarch64_target::get_min_fast_tracepoint_insn_len ()
return 4;
}
-/* Implementation of linux_target_ops method "supports_range_stepping". */
+/* Implementation of linux target ops method "low_supports_range_stepping". */
-static int
-aarch64_supports_range_stepping (void)
+bool
+aarch64_target::low_supports_range_stepping ()
{
- return 1;
+ return true;
}
/* Implementation of target ops method "sw_breakpoint_from_kind". */
@@ -3166,7 +3168,6 @@ aarch64_supports_hardware_single_step (void)
struct linux_target_ops the_low_target =
{
- aarch64_supports_range_stepping,
aarch64_supports_hardware_single_step,
aarch64_get_syscall_trapinfo,
};
@@ -1119,7 +1119,6 @@ arm_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
arm_supports_hardware_single_step,
arm_get_syscall_trapinfo,
};
@@ -165,7 +165,6 @@ bfin_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
bfin_supports_hardware_single_step,
};
@@ -470,7 +470,6 @@ crisv32_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
cris_supports_hardware_single_step,
};
@@ -6289,10 +6289,14 @@ linux_process_target::supports_range_stepping ()
{
if (supports_software_single_step ())
return true;
- if (*the_low_target.supports_range_stepping == NULL)
- return false;
- return (*the_low_target.supports_range_stepping) ();
+ return low_supports_range_stepping ();
+}
+
+bool
+linux_process_target::low_supports_range_stepping ()
+{
+ return false;
}
bool
@@ -131,9 +131,6 @@ struct lwp_info;
struct linux_target_ops
{
- /* Returns true if the low target supports range stepping. */
- int (*supports_range_stepping) (void);
-
/* See target.h. */
int (*supports_hardware_single_step) (void);
@@ -680,6 +677,9 @@ class linux_process_target : public process_stratum_target
success, -1 on failure. */
virtual int low_get_thread_area (int lwpid, CORE_ADDR *addrp);
+ /* Returns true if the low target supports range stepping. */
+ virtual bool low_supports_range_stepping ();
+
/* How many bytes the PC should be decremented after a break. */
int m_decr_pc_after_break;
};
@@ -163,7 +163,6 @@ m32r_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
m32r_supports_hardware_single_step,
};
@@ -259,7 +259,6 @@ m68k_supports_hardware_single_step (void)
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
m68k_supports_hardware_single_step,
};
@@ -3456,7 +3456,6 @@ ppc_get_ipa_tdesc_idx (void)
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
ppc_supports_hardware_single_step,
NULL, /* get_syscall_trapinfo */
ppc_get_ipa_tdesc_idx,
@@ -2857,7 +2857,6 @@ s390_target::emit_ops ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
s390_supports_hardware_single_step,
NULL, /* get_syscall_trapinfo */
s390_get_ipa_tdesc_idx,
@@ -194,7 +194,6 @@ sh_target::low_arch_setup ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
sh_supports_hardware_single_step,
};
@@ -425,7 +425,6 @@ tic6x_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
tic6x_supports_hardware_single_step,
};
@@ -226,7 +226,6 @@ tile_supports_hardware_single_step (void)
struct linux_target_ops the_low_target =
{
- NULL, /* supports_range_stepping */
tile_supports_hardware_single_step,
};
@@ -174,6 +174,8 @@ protected:
int low_get_thread_area (int lwpid, CORE_ADDR *addrp) override;
+ bool low_supports_range_stepping () override;
+
private:
/* Update all the target description of all processes; a new GDB
@@ -2949,10 +2951,10 @@ x86_target::sw_breakpoint_from_kind (int kind, int *size)
return x86_breakpoint;
}
-static int
-x86_supports_range_stepping (void)
+bool
+x86_target::low_supports_range_stepping ()
{
- return 1;
+ return true;
}
/* Implementation of linux_target_ops method "supports_hardware_single_step".
@@ -2985,7 +2987,6 @@ x86_get_ipa_tdesc_idx (void)
struct linux_target_ops the_low_target =
{
- x86_supports_range_stepping,
x86_supports_hardware_single_step,
x86_get_syscall_trapinfo,
x86_get_ipa_tdesc_idx,
@@ -331,7 +331,6 @@ xtensa_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
xtensa_supports_hardware_single_step,
};