gdbserver: turn target op 'supports_range_stepping' into a method

gdbserver/ChangeLog:
2020-02-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>

	Turn process_stratum_target's supports_range_stepping op into a
	method of process_target.

	* target.h (struct process_stratum_target): Remove the target op.
	(class process_target): Add the target op.
	(target_supports_range_stepping): Update the macro.
	* target.cc (process_target::supports_range_stepping): Define.

	Update the derived classes and callers below.

	* linux-low.cc (linux_target_ops): Update.
	(linux_supports_range_stepping): Turn into ...
	(linux_process_target::supports_range_stepping): ... this.
	* linux-low.h (class linux_process_target): Update.
	* lynx-low.cc (lynx_target_ops): Update.
	* nto-low.cc (nto_target_ops): Update.
	* win32-low.cc (win32_target_ops): Update.
This commit is contained in:
Tankut Baris Aktemur
2020-02-17 16:12:01 +01:00
parent 79597bdd56
commit 2526e0cd95
8 changed files with 36 additions and 13 deletions

View File

@ -1,3 +1,23 @@
2020-02-20 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
Turn process_stratum_target's supports_range_stepping op into a
method of process_target.
* target.h (struct process_stratum_target): Remove the target op.
(class process_target): Add the target op.
(target_supports_range_stepping): Update the macro.
* target.cc (process_target::supports_range_stepping): Define.
Update the derived classes and callers below.
* linux-low.cc (linux_target_ops): Update.
(linux_supports_range_stepping): Turn into ...
(linux_process_target::supports_range_stepping): ... this.
* linux-low.h (class linux_process_target): Update.
* lynx-low.cc (lynx_target_ops): Update.
* nto-low.cc (nto_target_ops): Update.
* win32-low.cc (win32_target_ops): Update.
2020-02-20 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> 2020-02-20 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
Turn process_stratum_target's btrace-related ops (enable_btrace, Turn process_stratum_target's btrace-related ops (enable_btrace,

View File

@ -6430,13 +6430,13 @@ linux_process_target::supports_agent ()
return true; return true;
} }
static int bool
linux_supports_range_stepping (void) linux_process_target::supports_range_stepping ()
{ {
if (can_software_single_step ()) if (can_software_single_step ())
return 1; return true;
if (*the_low_target.supports_range_stepping == NULL) if (*the_low_target.supports_range_stepping == NULL)
return 0; return false;
return (*the_low_target.supports_range_stepping) (); return (*the_low_target.supports_range_stepping) ();
} }
@ -7471,7 +7471,6 @@ linux_get_hwcap2 (int wordsize)
static linux_process_target the_linux_target; static linux_process_target the_linux_target;
static process_stratum_target linux_target_ops = { static process_stratum_target linux_target_ops = {
linux_supports_range_stepping,
linux_proc_pid_to_exec_file, linux_proc_pid_to_exec_file,
linux_mntns_open_cloexec, linux_mntns_open_cloexec,
linux_mntns_unlink, linux_mntns_unlink,

View File

@ -446,6 +446,8 @@ public:
int read_btrace_conf (const btrace_target_info *tinfo, int read_btrace_conf (const btrace_target_info *tinfo,
buffer *buf) override; buffer *buf) override;
#endif #endif
bool supports_range_stepping () override;
}; };
#define get_thread_lwp(thr) ((struct lwp_info *) (thread_target_data (thr))) #define get_thread_lwp(thr) ((struct lwp_info *) (thread_target_data (thr)))

View File

@ -735,7 +735,6 @@ static lynx_process_target the_lynx_target;
/* The LynxOS target_ops vector. */ /* The LynxOS target_ops vector. */
static process_stratum_target lynx_target_ops = { static process_stratum_target lynx_target_ops = {
NULL, /* supports_range_stepping */
NULL, /* pid_to_exec_file */ NULL, /* pid_to_exec_file */
NULL, /* multifs_open */ NULL, /* multifs_open */
NULL, /* multifs_unlink */ NULL, /* multifs_unlink */

View File

@ -947,7 +947,6 @@ nto_sw_breakpoint_from_kind (int kind, int *size)
static nto_process_target the_nto_target; static nto_process_target the_nto_target;
static process_stratum_target nto_target_ops = { static process_stratum_target nto_target_ops = {
NULL, /* supports_range_stepping */
NULL, /* pid_to_exec_file */ NULL, /* pid_to_exec_file */
NULL, /* multifs_open */ NULL, /* multifs_open */
NULL, /* multifs_unlink */ NULL, /* multifs_unlink */

View File

@ -753,3 +753,9 @@ process_target::read_btrace_conf (const btrace_target_info *tinfo,
{ {
error (_("Target does not support branch tracing.")); error (_("Target does not support branch tracing."));
} }
bool
process_target::supports_range_stepping ()
{
return false;
}

View File

@ -70,9 +70,6 @@ class process_target;
shared code. */ shared code. */
struct process_stratum_target struct process_stratum_target
{ {
/* Return true if target supports range stepping. */
int (*supports_range_stepping) (void);
/* Return the full absolute name of the executable file that was /* Return the full absolute name of the executable file that was
run to create the process PID. If the executable file cannot run to create the process PID. If the executable file cannot
be determined, NULL is returned. Otherwise, a pointer to a be determined, NULL is returned. Otherwise, a pointer to a
@ -498,6 +495,9 @@ public:
otherwise. */ otherwise. */
virtual int read_btrace_conf (const btrace_target_info *tinfo, virtual int read_btrace_conf (const btrace_target_info *tinfo,
buffer *buf); buffer *buf);
/* Return true if target supports range stepping. */
virtual bool supports_range_stepping ();
}; };
extern process_stratum_target *the_target; extern process_stratum_target *the_target;
@ -638,8 +638,7 @@ target_read_btrace_conf (struct btrace_target_info *tinfo,
} }
#define target_supports_range_stepping() \ #define target_supports_range_stepping() \
(the_target->supports_range_stepping ? \ the_target->pt->supports_range_stepping ()
(*the_target->supports_range_stepping) () : 0)
#define target_supports_stopped_by_sw_breakpoint() \ #define target_supports_stopped_by_sw_breakpoint() \
the_target->pt->supports_stopped_by_sw_breakpoint () the_target->pt->supports_stopped_by_sw_breakpoint ()

View File

@ -1858,7 +1858,6 @@ win32_sw_breakpoint_from_kind (int kind, int *size)
static win32_process_target the_win32_target; static win32_process_target the_win32_target;
static process_stratum_target win32_target_ops = { static process_stratum_target win32_target_ops = {
NULL, /* supports_range_stepping */
NULL, /* pid_to_exec_file */ NULL, /* pid_to_exec_file */
NULL, /* multifs_open */ NULL, /* multifs_open */
NULL, /* multifs_unlink */ NULL, /* multifs_unlink */