From b5c8fcb1b40a61be5015b02e8cf456a56c258b5d Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 3 May 2018 00:37:07 +0100 Subject: 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 * 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. --- gdb/procfs.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) (limited to 'gdb/procfs.c') 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 -- cgit v1.2.1