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.
This commit is contained in:
parent
77d3c63b0d
commit
b5c8fcb1b4
5 changed files with 37 additions and 20 deletions
|
@ -1,3 +1,17 @@
|
||||||
|
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.
|
||||||
|
|
||||||
2018-05-02 Tom Tromey <tom@tromey.com>
|
2018-05-02 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
PR python/20084:
|
PR python/20084:
|
||||||
|
|
|
@ -138,8 +138,6 @@ _initialize_amd64_sol2_nat (void)
|
||||||
/* Fill in the generic procfs methods. */
|
/* Fill in the generic procfs methods. */
|
||||||
t = procfs_target ();
|
t = procfs_target ();
|
||||||
|
|
||||||
procfs_use_watchpoints (t);
|
|
||||||
|
|
||||||
#if defined (PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)
|
#if defined (PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)
|
||||||
amd64_native_gregset32_reg_offset = amd64_sol2_gregset32_reg_offset;
|
amd64_native_gregset32_reg_offset = amd64_sol2_gregset32_reg_offset;
|
||||||
amd64_native_gregset32_num_regs =
|
amd64_native_gregset32_num_regs =
|
||||||
|
|
34
gdb/procfs.c
34
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 *,
|
static void procfs_info_proc (struct target_ops *, const char *,
|
||||||
enum info_proc_what);
|
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)
|
#if defined (PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)
|
||||||
/* When GDB is built as 64-bit application on Solaris, the auxv data
|
/* 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
|
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;
|
t->to_auxv_parse = procfs_auxv_parse;
|
||||||
#endif
|
#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;
|
t->to_magic = OPS_MAGIC;
|
||||||
|
|
||||||
return t;
|
return t;
|
||||||
|
@ -3385,17 +3408,6 @@ procfs_region_ok_for_hw_watchpoint (struct target_ops *self,
|
||||||
return 1;
|
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: */
|
/* Memory Mappings Functions: */
|
||||||
|
|
||||||
/* Call a callback function once for each mapping, passing it the
|
/* Call a callback function once for each mapping, passing it the
|
||||||
|
|
|
@ -24,12 +24,6 @@ struct target_ops;
|
||||||
|
|
||||||
extern struct target_ops *procfs_target (void);
|
extern struct target_ops *procfs_target (void);
|
||||||
|
|
||||||
/* Call this in the native _initialize routine that creates and
|
|
||||||
customizes the prototype target returned by procfs_target, if the
|
|
||||||
native debug interface supports procfs watchpoints. */
|
|
||||||
|
|
||||||
extern void procfs_use_watchpoints (struct target_ops *t);
|
|
||||||
|
|
||||||
/* Return a ptid for which we guarantee we will be able to find a
|
/* Return a ptid for which we guarantee we will be able to find a
|
||||||
'live' procinfo. */
|
'live' procinfo. */
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,5 @@ _initialize_sparc_sol2_nat (void)
|
||||||
struct target_ops *t;
|
struct target_ops *t;
|
||||||
|
|
||||||
t = procfs_target ();
|
t = procfs_target ();
|
||||||
procfs_use_watchpoints (t);
|
|
||||||
add_target (t);
|
add_target (t);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue