aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2022-04-30 08:06:39 -0600
committerTom Tromey <tom@tromey.com>2022-05-06 12:03:34 -0600
commit5a61e176877b17a0fdca25a298d296800353af10 (patch)
tree8032963191768e7587814174e597932221928e7d /gdb
parenta6860f3ad2d0ee89ee8b4a7f257b7fdcac84b5c4 (diff)
downloadgdb-5a61e176877b17a0fdca25a298d296800353af10.zip
gdb-5a61e176877b17a0fdca25a298d296800353af10.tar.gz
gdb-5a61e176877b17a0fdca25a298d296800353af10.tar.bz2
Move works_in_software_mode to watchpoint
works_in_software_mode is only useful for watchpoints. This patch moves it from breakpoint to watchpoint, and changes it to return bool.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/breakpoint.c16
-rw-r--r--gdb/breakpoint.h12
2 files changed, 11 insertions, 17 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 2521e95..41e827b 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -2144,7 +2144,7 @@ update_watchpoint (struct watchpoint *b, int reparse)
= target_can_use_hardware_watchpoint (type, i, other_type_used);
if (target_resources_ok <= 0)
{
- int sw_mode = b->works_in_software_mode ();
+ bool sw_mode = b->works_in_software_mode ();
if (target_resources_ok == 0 && !sw_mode)
error (_("Target does not support this type of "
@@ -9558,7 +9558,7 @@ watchpoint::resources_needed (const struct bp_location *bl)
/* Implement the "works_in_software_mode" method for hardware
watchpoints. */
-int
+bool
watchpoint::works_in_software_mode () const
{
/* Read and access watchpoints only work with hardware support. */
@@ -9733,7 +9733,7 @@ struct masked_watchpoint : public watchpoint
int remove_location (struct bp_location *,
enum remove_bp_reason reason) override;
int resources_needed (const struct bp_location *) override;
- int works_in_software_mode () const override;
+ bool works_in_software_mode () const override;
enum print_stop_action print_it (struct bpstat *bs) override;
void print_one_detail (struct ui_out *) const override;
void print_mention () override;
@@ -9771,10 +9771,10 @@ masked_watchpoint::resources_needed (const struct bp_location *bl)
/* Implement the "works_in_software_mode" method for masked hardware
watchpoints. */
-int
+bool
masked_watchpoint::works_in_software_mode () const
{
- return 0;
+ return false;
}
/* Implement the "print_it" method for masked hardware
@@ -11551,12 +11551,6 @@ breakpoint::breakpoint_hit (const struct bp_location *bl,
}
int
-breakpoint::works_in_software_mode () const
-{
- internal_error_pure_virtual_called ();
-}
-
-int
breakpoint::resources_needed (const struct bp_location *bl)
{
internal_error_pure_virtual_called ();
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index ec3a830..bbacbca 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -668,11 +668,6 @@ struct breakpoint
the breakpoint or watchpoint needs one debug register. */
virtual int resources_needed (const struct bp_location *);
- /* Tell whether we can downgrade from a hardware watchpoint to a software
- one. If not, the user will not be able to enable the watchpoint when
- there are not enough hardware resources available. */
- virtual int works_in_software_mode () const;
-
/* The normal print routine for this breakpoint, called when we
hit it. */
virtual enum print_stop_action print_it (struct bpstat *bs);
@@ -878,7 +873,12 @@ struct watchpoint : public breakpoint
const target_waitstatus &ws) override;
void check_status (struct bpstat *bs) override;
int resources_needed (const struct bp_location *) override;
- int works_in_software_mode () const override;
+
+ /* Tell whether we can downgrade from a hardware watchpoint to a software
+ one. If not, the user will not be able to enable the watchpoint when
+ there are not enough hardware resources available. */
+ virtual bool works_in_software_mode () const;
+
enum print_stop_action print_it (struct bpstat *bs) override;
void print_mention () override;
void print_recreate (struct ui_file *fp) override;