diff options
author | Pedro Alves <palves@redhat.com> | 2018-11-30 14:53:40 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2018-11-30 16:28:11 +0000 |
commit | f3d11a9a96465432c01678445fc2fe84f2ef94f7 (patch) | |
tree | 44b4e3a90e2036c740b8119ff1f5da097e2ba2e9 | |
parent | 3b3dac9b3fd916d73726c7e5508f057574f74d19 (diff) | |
download | gdb-f3d11a9a96465432c01678445fc2fe84f2ef94f7.zip gdb-f3d11a9a96465432c01678445fc2fe84f2ef94f7.tar.gz gdb-f3d11a9a96465432c01678445fc2fe84f2ef94f7.tar.bz2 |
Convert default_child_has_foo functions to process_stratum_target methods
This patch converts the default_child_has_foo functions to
process_stratum_target methods. This simplifies "regular"
non-inf_child process_stratum targets, since they no longer have to
override the target_ops::has_foo methods to call the default_child_foo
functions. A couple targets need to override the new defaults
(corelow and tracefiles), but it still seems like a good tradeoff,
since those are expected to be little different (target doesn't run).
gdb/ChangeLog:
2018-11-30 Pedro Alves <palves@redhat.com>
* corelow.c (core_target) <has_all_memory, has_execution>: New
overrides.
* inf-child.c (inf_child_target::has_all_memory)
(inf_child_target::has_memory, inf_child_target::has_stack)
(inf_child_target::has_registers)
(inf_child_target::has_execution): Delete.
* inf-child.h (inf_child_target) <has_all_memory, has_memory,
has_stack, has_registers, has_execution>: Delete.
* process-stratum-target.c
(process_stratum_target::has_all_memory)
(process_stratum_target::has_memory)
(process_stratum_target::has_stack)
(process_stratum_target::has_registers)
(process_stratum_target::has_execution): New.
* process-stratum-target.h (process_stratum_target)
<has_all_memory, has_memory, has_stack, has_registers,
has_execution>: New method overrides.
* ravenscar-thread.c (ravenscar_thread_target) <has_all_memory,
has_memory, has_stack, has_registers, has_execution>: Delete.
* remote-sim.c (gdbsim_target) <has_stack, has_registers,
has_execution>: Delete.
* remote.c (remote_target) <has_all_memory, has_memory, has_stack,
has_registers, has_execution>: Delete.
* target.c (default_child_has_all_memory)
(default_child_has_memory, default_child_has_stack)
(default_child_has_registers, default_child_has_execution):
Delete.
* target.h (default_child_has_all_memory)
(default_child_has_memory, default_child_has_stack)
(default_child_has_registers, default_child_has_execution):
Delete.
* tracefile.h (tracefile_target) <has_execution>: New override.
-rw-r--r-- | gdb/ChangeLog | 35 | ||||
-rw-r--r-- | gdb/corelow.c | 3 | ||||
-rw-r--r-- | gdb/inf-child.c | 30 | ||||
-rw-r--r-- | gdb/inf-child.h | 6 | ||||
-rw-r--r-- | gdb/process-stratum-target.c | 36 | ||||
-rw-r--r-- | gdb/process-stratum-target.h | 8 | ||||
-rw-r--r-- | gdb/ravenscar-thread.c | 7 | ||||
-rw-r--r-- | gdb/remote-sim.c | 9 | ||||
-rw-r--r-- | gdb/remote.c | 6 | ||||
-rw-r--r-- | gdb/target.c | 54 | ||||
-rw-r--r-- | gdb/target.h | 9 | ||||
-rw-r--r-- | gdb/tracefile.h | 1 |
12 files changed, 83 insertions, 121 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index faed74b..8fdf04a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,40 @@ 2018-11-30 Pedro Alves <palves@redhat.com> + * corelow.c (core_target) <has_all_memory, has_execution>: New + overrides. + * inf-child.c (inf_child_target::has_all_memory) + (inf_child_target::has_memory, inf_child_target::has_stack) + (inf_child_target::has_registers) + (inf_child_target::has_execution): Delete. + * inf-child.h (inf_child_target) <has_all_memory, has_memory, + has_stack, has_registers, has_execution>: Delete. + * process-stratum-target.c + (process_stratum_target::has_all_memory) + (process_stratum_target::has_memory) + (process_stratum_target::has_stack) + (process_stratum_target::has_registers) + (process_stratum_target::has_execution): New. + * process-stratum-target.h (process_stratum_target) + <has_all_memory, has_memory, has_stack, has_registers, + has_execution>: New method overrides. + * ravenscar-thread.c (ravenscar_thread_target) <has_all_memory, + has_memory, has_stack, has_registers, has_execution>: Delete. + * remote-sim.c (gdbsim_target) <has_stack, has_registers, + has_execution>: Delete. + * remote.c (remote_target) <has_all_memory, has_memory, has_stack, + has_registers, has_execution>: Delete. + * target.c (default_child_has_all_memory) + (default_child_has_memory, default_child_has_stack) + (default_child_has_registers, default_child_has_execution): + Delete. + * target.h (default_child_has_all_memory) + (default_child_has_memory, default_child_has_stack) + (default_child_has_registers, default_child_has_execution): + Delete. + * tracefile.h (tracefile_target) <has_execution>: New override. + +2018-11-30 Pedro Alves <palves@redhat.com> + * Makefile.in (COMMON_SFILES): Add process-stratum-target.c. * bsd-kvm.c: Include "process-stratum-target.h". (bsd_kvm_target): Now inherits from process_stratum_target. diff --git a/gdb/corelow.c b/gdb/corelow.c index deabf84..7cc177c9 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -90,9 +90,12 @@ public: const char *thread_name (struct thread_info *) override; + bool has_all_memory () override { return false; } bool has_memory () override; bool has_stack () override; bool has_registers () override; + bool has_execution (ptid_t) override { return false; } + bool info_proc (const char *, enum info_proc_what) override; /* A few helpers. */ diff --git a/gdb/inf-child.c b/gdb/inf-child.c index 8cdfa05..fc70445 100644 --- a/gdb/inf-child.c +++ b/gdb/inf-child.c @@ -243,36 +243,6 @@ inf_child_target::pid_to_exec_file (int pid) return NULL; } -bool -inf_child_target::has_all_memory () -{ - return default_child_has_all_memory (); -} - -bool -inf_child_target::has_memory () -{ - return default_child_has_memory (); -} - -bool -inf_child_target::has_stack () -{ - return default_child_has_stack (); -} - -bool -inf_child_target::has_registers () -{ - return default_child_has_registers (); -} - -bool -inf_child_target::has_execution (ptid_t ptid) -{ - return default_child_has_execution (ptid); -} - /* Implementation of to_fileio_open. */ int diff --git a/gdb/inf-child.h b/gdb/inf-child.h index d301d39..a0bb40b 100644 --- a/gdb/inf-child.h +++ b/gdb/inf-child.h @@ -72,12 +72,6 @@ public: char *pid_to_exec_file (int pid) override; - bool has_all_memory () override; - bool has_memory () override; - bool has_stack () override; - bool has_registers () override; - bool has_execution (ptid_t) override; - int fileio_open (struct inferior *inf, const char *filename, int flags, int mode, int warn_if_slow, int *target_errno) override; diff --git a/gdb/process-stratum-target.c b/gdb/process-stratum-target.c index 9ce8d3d..ca9d13a 100644 --- a/gdb/process-stratum-target.c +++ b/gdb/process-stratum-target.c @@ -47,3 +47,39 @@ process_stratum_target::thread_architecture (ptid_t ptid) gdb_assert (inf != NULL); return inf->gdbarch; } + +bool +process_stratum_target::has_all_memory () +{ + /* If no inferior selected, then we can't read memory here. */ + return inferior_ptid != null_ptid; +} + +bool +process_stratum_target::has_memory () +{ + /* If no inferior selected, then we can't read memory here. */ + return inferior_ptid != null_ptid; +} + +bool +process_stratum_target::has_stack () +{ + /* If no inferior selected, there's no stack. */ + return inferior_ptid != null_ptid; +} + +bool +process_stratum_target::has_registers () +{ + /* Can't read registers from no inferior. */ + return inferior_ptid != null_ptid; +} + +bool +process_stratum_target::has_execution (ptid_t the_ptid) +{ + /* If there's no thread selected, then we can't make it run through + hoops. */ + return the_ptid != null_ptid; +} diff --git a/gdb/process-stratum-target.h b/gdb/process-stratum-target.h index 0a799f7..74640aa 100644 --- a/gdb/process-stratum-target.h +++ b/gdb/process-stratum-target.h @@ -46,6 +46,14 @@ public: /* This default implementation always returns target_gdbarch (). */ struct gdbarch *thread_architecture (ptid_t ptid) override; + + /* Default implementations for process_stratum targets. Return true + if there's a selected inferior, false otherwise. */ + bool has_all_memory () override; + bool has_memory () override; + bool has_stack () override; + bool has_registers () override; + bool has_execution (ptid_t the_ptid) override; }; #endif /* !defined (PROCESS_STRATUM_TARGET_H) */ diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c index e60fad8..0f2889c 100644 --- a/gdb/ravenscar-thread.c +++ b/gdb/ravenscar-thread.c @@ -116,13 +116,6 @@ struct ravenscar_thread_target final : public target_ops ptid_t get_ada_task_ptid (long lwp, long thread) override; void mourn_inferior () override; - - bool has_all_memory () override { return default_child_has_all_memory (); } - bool has_memory () override { return default_child_has_memory (); } - bool has_stack () override { return default_child_has_stack (); } - bool has_registers () override { return default_child_has_registers (); } - bool has_execution (ptid_t ptid) override - { return default_child_has_execution (ptid); } }; /* This module's target-specific operations. */ diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c index 1ceecaa..b3fb95a 100644 --- a/gdb/remote-sim.c +++ b/gdb/remote-sim.c @@ -128,15 +128,6 @@ struct gdbsim_target final bool has_all_memory () override; bool has_memory () override; - - bool has_stack () override - { return default_child_has_stack (); } - - bool has_registers () override - { return default_child_has_registers (); } - - bool has_execution (ptid_t ptid) override - { return default_child_has_execution (ptid); } }; static struct gdbsim_target gdbsim_ops; diff --git a/gdb/remote.c b/gdb/remote.c index ae35bec..4324452 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -525,12 +525,6 @@ public: CORE_ADDR load_module_addr, CORE_ADDR offset) override; - bool has_all_memory () override { return default_child_has_all_memory (); } - bool has_memory () override { return default_child_has_memory (); } - bool has_stack () override { return default_child_has_stack (); } - bool has_registers () override { return default_child_has_registers (); } - bool has_execution (ptid_t ptid) override { return default_child_has_execution (ptid); } - bool can_execute_reverse () override; std::vector<mem_region> memory_map () override; diff --git a/gdb/target.c b/gdb/target.c index 8905ce3..ecfdde9 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -186,60 +186,6 @@ target_command (const char *arg, int from_tty) gdb_stdout); } -/* Default target_has_* methods for process_stratum targets. */ - -int -default_child_has_all_memory () -{ - /* If no inferior selected, then we can't read memory here. */ - if (inferior_ptid == null_ptid) - return 0; - - return 1; -} - -int -default_child_has_memory () -{ - /* If no inferior selected, then we can't read memory here. */ - if (inferior_ptid == null_ptid) - return 0; - - return 1; -} - -int -default_child_has_stack () -{ - /* If no inferior selected, there's no stack. */ - if (inferior_ptid == null_ptid) - return 0; - - return 1; -} - -int -default_child_has_registers () -{ - /* Can't read registers from no inferior. */ - if (inferior_ptid == null_ptid) - return 0; - - return 1; -} - -int -default_child_has_execution (ptid_t the_ptid) -{ - /* If there's no thread selected, then we can't make it run through - hoops. */ - if (the_ptid == null_ptid) - return 0; - - return 1; -} - - int target_has_all_memory_1 (void) { diff --git a/gdb/target.h b/gdb/target.h index 36f8d5e..b0469bb 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -1790,15 +1790,6 @@ extern int target_has_execution_current (void); #define target_has_execution target_has_execution_current () -/* Default implementations for process_stratum targets. Return true - if there's a selected inferior, false otherwise. */ - -extern int default_child_has_all_memory (); -extern int default_child_has_memory (); -extern int default_child_has_stack (); -extern int default_child_has_registers (); -extern int default_child_has_execution (ptid_t the_ptid); - /* Can the target support the debugger control of thread execution? Can it lock the thread scheduler? */ diff --git a/gdb/tracefile.h b/gdb/tracefile.h index 3ae3e7d..8f9dc0e 100644 --- a/gdb/tracefile.h +++ b/gdb/tracefile.h @@ -127,6 +127,7 @@ public: bool has_memory () override; bool has_stack () override; bool has_registers () override; + bool has_execution (ptid_t) override { return false; } bool thread_alive (ptid_t ptid) override; }; |