mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 01:07:52 +00:00
gdb, breakpoint: add a destructor to the watchpoint struct
Make sure to unlink the related breakpoint when the watchpoint instance is deleted. This prevents having a wp-related breakpoint that is linked to a NULL watchpoint (e.g. the watchpoint instance is being deleted when the 'watch' command fails). With the below scenario, having such a left out breakpoint will lead to a GDB hang, and this is due to an infinite loop when deleting all inferior breakpoints. Scenario: (gdb) set can-use-hw-watchpoints 0 (gdb) awatch <SCOPE VAR> Can't set read/access watchpoint when hardware watchpoints are disabled. (gdb) rwatch <SCOPE VAR> Can't set read/access watchpoint when hardware watchpoints are disabled. (gdb) <continue the program until the end> >> HANG << Signed-off-by: Mohamed Bouhaouel <mohamed.bouhaouel@intel.com> Reviewed-by: Bruno Larsen <blarsen@redhat.com>
This commit is contained in:
committed by
Tom Tromey
parent
12f567bcb6
commit
093da43d2a
@@ -1000,6 +1000,9 @@ struct watchpoint : public breakpoint
|
||||
void print_recreate (struct ui_file *fp) const override;
|
||||
bool explains_signal (enum gdb_signal) override;
|
||||
|
||||
/* Destructor for WATCHPOINT. */
|
||||
~watchpoint ();
|
||||
|
||||
/* String form of exp to use for displaying to the user (malloc'd),
|
||||
or NULL if none. */
|
||||
gdb::unique_xmalloc_ptr<char> exp_string;
|
||||
|
||||
Reference in New Issue
Block a user