summaryrefslogtreecommitdiff
path: root/gdb/procfs.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2018-05-03 00:37:07 +0100
committerPedro Alves <palves@redhat.com>2018-05-03 00:37:07 +0100
commitb5c8fcb1b40a61be5015b02e8cf456a56c258b5d (patch)
treee03ca76c9653aaf7e236e4f3efc74696124ff72d /gdb/procfs.c
parent77d3c63b0dc9d275a87d4ea2191ebd3830f6ca4a (diff)
downloadbinutils-gdb-b5c8fcb1b40a61be5015b02e8cf456a56c258b5d.tar.gz
Eliminate procfs.c:procfs_use_watchpoints
Now that procfs.c is only ever used by Solaris, and, both x86 and SPARC Solaris support watchpoints (*), we don't need the separate procfs_use_watchpoints function. Getting rid of it simplifies C++ification of target_ops. (*) and I assume that any other Solaris port would use the same kernel debug API interfaces for watchpoints. Otherwise, we can worry about it if it ever happens. gdb/ChangeLog: 2018-05-02 Pedro Alves <palves@redhat.com> * procfs.c (procfs_stopped_by_watchpoint) (procfs_insert_watchpoint, procfs_remove_watchpoint) (procfs_region_ok_for_hw_watchpoint, procfs_stopped_data_address): Forward declare. (procfs_use_watchpoints): Delete, move contents... (procfs_target): ... here. * procfs.h (procfs_use_watchpoints): Delete declaration. * i386-sol2-nat.c (_initialize_amd64_sol2_nat): Don't call procfs_use_watchpoints. * sparc-sol2-nat.c (_initialize_sparc_sol2_nat): Don't call procfs_use_watchpoints.
Diffstat (limited to 'gdb/procfs.c')
-rw-r--r--gdb/procfs.c34
1 files changed, 23 insertions, 11 deletions
diff --git a/gdb/procfs.c b/gdb/procfs.c
index 3c747cd3e21..0143f2621cd 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -126,6 +126,22 @@ static int procfs_can_use_hw_breakpoint (struct target_ops *self,
static void procfs_info_proc (struct target_ops *, const char *,
enum info_proc_what);
+static int procfs_stopped_by_watchpoint (struct target_ops *);
+
+static int procfs_insert_watchpoint (struct target_ops *,
+ CORE_ADDR, int,
+ enum target_hw_bp_type,
+ struct expression *);
+
+static int procfs_remove_watchpoint (struct target_ops *,
+ CORE_ADDR, int,
+ enum target_hw_bp_type,
+ struct expression *);
+
+static int procfs_region_ok_for_hw_watchpoint (struct target_ops *,
+ CORE_ADDR, int);
+static int procfs_stopped_data_address (struct target_ops *, CORE_ADDR *);
+
#if defined (PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)
/* When GDB is built as 64-bit application on Solaris, the auxv data
is presented in 64-bit format. We need to provide a custom parser
@@ -186,6 +202,13 @@ procfs_target (void)
t->to_auxv_parse = procfs_auxv_parse;
#endif
+ t->to_stopped_by_watchpoint = procfs_stopped_by_watchpoint;
+ t->to_insert_watchpoint = procfs_insert_watchpoint;
+ t->to_remove_watchpoint = procfs_remove_watchpoint;
+ t->to_region_ok_for_hw_watchpoint = procfs_region_ok_for_hw_watchpoint;
+ t->to_can_use_hw_breakpoint = procfs_can_use_hw_breakpoint;
+ t->to_stopped_data_address = procfs_stopped_data_address;
+
t->to_magic = OPS_MAGIC;
return t;
@@ -3385,17 +3408,6 @@ procfs_region_ok_for_hw_watchpoint (struct target_ops *self,
return 1;
}
-void
-procfs_use_watchpoints (struct target_ops *t)
-{
- t->to_stopped_by_watchpoint = procfs_stopped_by_watchpoint;
- t->to_insert_watchpoint = procfs_insert_watchpoint;
- t->to_remove_watchpoint = procfs_remove_watchpoint;
- t->to_region_ok_for_hw_watchpoint = procfs_region_ok_for_hw_watchpoint;
- t->to_can_use_hw_breakpoint = procfs_can_use_hw_breakpoint;
- t->to_stopped_data_address = procfs_stopped_data_address;
-}
-
/* Memory Mappings Functions: */
/* Call a callback function once for each mapping, passing it the