summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdbserver/ChangeLog33
-rw-r--r--gdbserver/linux-aarch64-low.cc11
-rw-r--r--gdbserver/linux-arm-low.cc1
-rw-r--r--gdbserver/linux-bfin-low.cc1
-rw-r--r--gdbserver/linux-crisv32-low.cc1
-rw-r--r--gdbserver/linux-low.cc10
-rw-r--r--gdbserver/linux-low.h6
-rw-r--r--gdbserver/linux-m32r-low.cc1
-rw-r--r--gdbserver/linux-m68k-low.cc1
-rw-r--r--gdbserver/linux-ppc-low.cc1
-rw-r--r--gdbserver/linux-s390-low.cc1
-rw-r--r--gdbserver/linux-sh-low.cc1
-rw-r--r--gdbserver/linux-tic6x-low.cc1
-rw-r--r--gdbserver/linux-tile-low.cc1
-rw-r--r--gdbserver/linux-x86-low.cc9
-rw-r--r--gdbserver/linux-xtensa-low.cc1
16 files changed, 54 insertions, 26 deletions
diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog
index 203b53453c..31901878e2 100644
--- a/gdbserver/ChangeLog
+++ b/gdbserver/ChangeLog
@@ -1,5 +1,38 @@
2020-04-02 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
+ Turn the 'supports_range_stepping' linux target op into a method
+ of linux_process_target.
+
+ * linux-low.h (struct linux_target_ops): Remove the op.
+ (class linux_process_target) <low_supports_range_stepping>: Declare.
+ * linux-low.cc (linux_process_target::low_supports_range_stepping):
+ Define.
+ (linux_process_target::supports_range_stepping): Update the call
+ site.
+ * linux-x86-low.cc (class x86_target)
+ <low_supports_range_stepping>: Declare.
+ (x86_supports_range_stepping): Turn into...
+ (x86_target::low_supports_range_stepping): ...this.
+ (the_low_target): Remove the op field.
+ * linux-aarch64-low.cc (class aarch64_target)
+ <low_supports_range_stepping>: Declare.
+ (aarch64_supports_range_stepping): Turn into...
+ (aarch64_target::low_supports_range_stepping): ...this.
+ (the_low_target): Remove the op field.
+ * linux-arm-low.cc (the_low_target): Remove the op field.
+ * linux-bfin-low.cc (the_low_target): Ditto.
+ * linux-crisv32-low.cc (the_low_target): Ditto.
+ * linux-m32r-low.cc (the_low_target): Ditto.
+ * linux-m68k-low.cc (the_low_target): Ditto.
+ * linux-ppc-low.cc (the_low_target): Ditto.
+ * linux-s390-low.cc (the_low_target): Ditto.
+ * linux-sh-low.cc (the_low_target): Ditto.
+ * linux-tic6x-low.cc (the_low_target): Ditto.
+ * linux-tile-low.cc (the_low_target): Ditto.
+ * linux-xtensa-low.cc (the_low_target): Ditto.
+
+2020-04-02 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
+
Remove the 'emit_ops' linux target ops and let the concrete
linux target define the op by overriding the declaration of
process_stratum_target.
diff --git a/gdbserver/linux-aarch64-low.cc b/gdbserver/linux-aarch64-low.cc
index c9893c80fc..b23f1c8e1f 100644
--- a/gdbserver/linux-aarch64-low.cc
+++ b/gdbserver/linux-aarch64-low.cc
@@ -123,6 +123,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. */
@@ -3110,12 +3112,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". */
@@ -3165,7 +3167,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,
};
diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc
index a235f4e1c5..a7d5261d2e 100644
--- a/gdbserver/linux-arm-low.cc
+++ b/gdbserver/linux-arm-low.cc
@@ -1117,7 +1117,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,
};
diff --git a/gdbserver/linux-bfin-low.cc b/gdbserver/linux-bfin-low.cc
index b20edf7adc..3b24124917 100644
--- a/gdbserver/linux-bfin-low.cc
+++ b/gdbserver/linux-bfin-low.cc
@@ -171,7 +171,6 @@ bfin_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
bfin_supports_hardware_single_step,
};
diff --git a/gdbserver/linux-crisv32-low.cc b/gdbserver/linux-crisv32-low.cc
index ca56cabecd..8850e73b7e 100644
--- a/gdbserver/linux-crisv32-low.cc
+++ b/gdbserver/linux-crisv32-low.cc
@@ -468,7 +468,6 @@ crisv32_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
cris_supports_hardware_single_step,
};
diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index 71cc140d69..7ec01f473a 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -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
diff --git a/gdbserver/linux-low.h b/gdbserver/linux-low.h
index 6db56d0e10..86a563a053 100644
--- a/gdbserver/linux-low.h
+++ b/gdbserver/linux-low.h
@@ -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);
@@ -678,6 +675,9 @@ protected:
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. */
virtual int low_decr_pc_after_break ();
};
diff --git a/gdbserver/linux-m32r-low.cc b/gdbserver/linux-m32r-low.cc
index 82dde9938b..8104e54c10 100644
--- a/gdbserver/linux-m32r-low.cc
+++ b/gdbserver/linux-m32r-low.cc
@@ -161,7 +161,6 @@ m32r_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
m32r_supports_hardware_single_step,
};
diff --git a/gdbserver/linux-m68k-low.cc b/gdbserver/linux-m68k-low.cc
index 0b30291d3f..ccad368ea0 100644
--- a/gdbserver/linux-m68k-low.cc
+++ b/gdbserver/linux-m68k-low.cc
@@ -265,7 +265,6 @@ m68k_supports_hardware_single_step (void)
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
m68k_supports_hardware_single_step,
};
diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc
index 58f6629917..4993125db9 100644
--- a/gdbserver/linux-ppc-low.cc
+++ b/gdbserver/linux-ppc-low.cc
@@ -3454,7 +3454,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,
diff --git a/gdbserver/linux-s390-low.cc b/gdbserver/linux-s390-low.cc
index 5ea4830dd1..b5d5e898c0 100644
--- a/gdbserver/linux-s390-low.cc
+++ b/gdbserver/linux-s390-low.cc
@@ -2863,7 +2863,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,
diff --git a/gdbserver/linux-sh-low.cc b/gdbserver/linux-sh-low.cc
index 6f270ed989..db40322cd4 100644
--- a/gdbserver/linux-sh-low.cc
+++ b/gdbserver/linux-sh-low.cc
@@ -192,7 +192,6 @@ sh_target::low_arch_setup ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
sh_supports_hardware_single_step,
};
diff --git a/gdbserver/linux-tic6x-low.cc b/gdbserver/linux-tic6x-low.cc
index 6a0be06da5..c80a2fb20e 100644
--- a/gdbserver/linux-tic6x-low.cc
+++ b/gdbserver/linux-tic6x-low.cc
@@ -423,7 +423,6 @@ tic6x_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
tic6x_supports_hardware_single_step,
};
diff --git a/gdbserver/linux-tile-low.cc b/gdbserver/linux-tile-low.cc
index b18134d6d8..10af23fa48 100644
--- a/gdbserver/linux-tile-low.cc
+++ b/gdbserver/linux-tile-low.cc
@@ -224,7 +224,6 @@ tile_supports_hardware_single_step (void)
struct linux_target_ops the_low_target =
{
- NULL, /* supports_range_stepping */
tile_supports_hardware_single_step,
};
diff --git a/gdbserver/linux-x86-low.cc b/gdbserver/linux-x86-low.cc
index 8e35ab172b..dce9a5fb7d 100644
--- a/gdbserver/linux-x86-low.cc
+++ b/gdbserver/linux-x86-low.cc
@@ -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
@@ -2956,10 +2958,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".
@@ -2992,7 +2994,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,
diff --git a/gdbserver/linux-xtensa-low.cc b/gdbserver/linux-xtensa-low.cc
index 774ad0a2cc..e273666e1c 100644
--- a/gdbserver/linux-xtensa-low.cc
+++ b/gdbserver/linux-xtensa-low.cc
@@ -329,7 +329,6 @@ xtensa_target::get_regs_info ()
}
struct linux_target_ops the_low_target = {
- NULL, /* supports_range_stepping */
xtensa_supports_hardware_single_step,
};