From dbaa3bf64062798c3e3009ab18af432dc5e7f4f5 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 8 May 2023 15:54:52 -0400 Subject: [PATCH] gdb: make some breakpoint methods use `this` Some implementations of breakpoint::check_status and breakpoint::print_it do this: struct breakpoint *b = bs->breakpoint_at; bs->breakpoint_at is always the same as `this` (we can get convinced by looking at the call sites of check_status and print_it), so it would just be clearer to access fields through `this` instead. Change-Id: Ic542a64fcd88e31ae2aad6feff1da278c7086891 Reviewed-By: Alexandra Petlanova Hajkova Reviewed-By: Andrew Burgess --- gdb/break-catch-load.c | 9 ++++----- gdb/break-catch-syscall.c | 7 +++---- gdb/break-catch-throw.c | 6 ++---- gdb/breakpoint.c | 26 ++++++++++---------------- 4 files changed, 19 insertions(+), 29 deletions(-) diff --git a/gdb/break-catch-load.c b/gdb/break-catch-load.c index d8dab0bd091..e01f6450fd7 100644 --- a/gdb/break-catch-load.c +++ b/gdb/break-catch-load.c @@ -141,19 +141,18 @@ solib_catchpoint::check_status (struct bpstat *bs) enum print_stop_action solib_catchpoint::print_it (const bpstat *bs) const { - struct breakpoint *b = bs->breakpoint_at; struct ui_out *uiout = current_uiout; - annotate_catchpoint (b->number); + annotate_catchpoint (this->number); maybe_print_thread_hit_breakpoint (uiout); - if (b->disposition == disp_del) + if (this->disposition == disp_del) uiout->text ("Temporary catchpoint "); else uiout->text ("Catchpoint "); - uiout->field_signed ("bkptno", b->number); + uiout->field_signed ("bkptno", this->number); uiout->text ("\n"); if (uiout->is_mi_like_p ()) - uiout->field_string ("disp", bpdisp_text (b->disposition)); + uiout->field_string ("disp", bpdisp_text (this->disposition)); print_solib_event (true); return PRINT_SRC_AND_LOC; } diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c index 595b05c90c8..6475f4aa172 100644 --- a/gdb/break-catch-syscall.c +++ b/gdb/break-catch-syscall.c @@ -190,7 +190,6 @@ enum print_stop_action syscall_catchpoint::print_it (const bpstat *bs) const { struct ui_out *uiout = current_uiout; - struct breakpoint *b = bs->breakpoint_at; /* These are needed because we want to know in which state a syscall is. It can be in the TARGET_WAITKIND_SYSCALL_ENTRY or TARGET_WAITKIND_SYSCALL_RETURN, and depending on it we @@ -202,10 +201,10 @@ syscall_catchpoint::print_it (const bpstat *bs) const get_syscall_by_number (gdbarch, last.syscall_number (), &s); - annotate_catchpoint (b->number); + annotate_catchpoint (this->number); maybe_print_thread_hit_breakpoint (uiout); - if (b->disposition == disp_del) + if (this->disposition == disp_del) uiout->text ("Temporary catchpoint "); else uiout->text ("Catchpoint "); @@ -215,7 +214,7 @@ syscall_catchpoint::print_it (const bpstat *bs) const async_reason_lookup (last.kind () == TARGET_WAITKIND_SYSCALL_ENTRY ? EXEC_ASYNC_SYSCALL_ENTRY : EXEC_ASYNC_SYSCALL_RETURN)); - uiout->field_string ("disp", bpdisp_text (b->disposition)); + uiout->field_string ("disp", bpdisp_text (this->disposition)); } print_num_locno (bs, uiout); diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c index 457446efbc6..604c1855c0d 100644 --- a/gdb/break-catch-throw.c +++ b/gdb/break-catch-throw.c @@ -160,15 +160,13 @@ fetch_probe_arguments (struct value **arg0, struct value **arg1) void exception_catchpoint::check_status (struct bpstat *bs) { - struct exception_catchpoint *self - = (struct exception_catchpoint *) bs->breakpoint_at; std::string type_name; this->breakpoint::check_status (bs); if (!bs->stop) return; - if (self->pattern == NULL) + if (this->pattern == NULL) return; const char *name = nullptr; @@ -192,7 +190,7 @@ exception_catchpoint::check_status (struct bpstat *bs) if (name != nullptr) { - if (self->pattern->exec (name, 0, NULL, 0) != 0) + if (this->pattern->exec (name, 0, NULL, 0) != 0) bs->stop = false; } } diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 36e53c0c6a1..facf23c3da9 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -9701,8 +9701,6 @@ watchpoint::breakpoint_hit (const struct bp_location *bl, void watchpoint::check_status (bpstat *bs) { - gdb_assert (is_watchpoint (bs->breakpoint_at)); - bpstat_check_watchpoint (bs); } @@ -9730,28 +9728,25 @@ watchpoint::works_in_software_mode () const enum print_stop_action watchpoint::print_it (const bpstat *bs) const { - struct breakpoint *b; enum print_stop_action result; struct ui_out *uiout = current_uiout; gdb_assert (bs->bp_location_at != NULL); - b = bs->breakpoint_at; - - annotate_watchpoint (b->number); + annotate_watchpoint (this->number); maybe_print_thread_hit_breakpoint (uiout); string_file stb; gdb::optional tuple_emitter; - switch (b->type) + switch (this->type) { case bp_watchpoint: case bp_hardware_watchpoint: if (uiout->is_mi_like_p ()) uiout->field_string ("reason", async_reason_lookup (EXEC_ASYNC_WATCHPOINT_TRIGGER)); - mention (b); + mention (this); tuple_emitter.emplace (uiout, "value"); uiout->text ("\nOld value = "); watchpoint_value_print (bs->old_val.get (), &stb); @@ -9768,7 +9763,7 @@ watchpoint::print_it (const bpstat *bs) const if (uiout->is_mi_like_p ()) uiout->field_string ("reason", async_reason_lookup (EXEC_ASYNC_READ_WATCHPOINT_TRIGGER)); - mention (b); + mention (this); tuple_emitter.emplace (uiout, "value"); uiout->text ("\nValue = "); watchpoint_value_print (val.get (), &stb); @@ -9784,7 +9779,7 @@ watchpoint::print_it (const bpstat *bs) const uiout->field_string ("reason", async_reason_lookup (EXEC_ASYNC_ACCESS_WATCHPOINT_TRIGGER)); - mention (b); + mention (this); tuple_emitter.emplace (uiout, "value"); uiout->text ("\nOld value = "); watchpoint_value_print (bs->old_val.get (), &stb); @@ -9793,7 +9788,7 @@ watchpoint::print_it (const bpstat *bs) const } else { - mention (b); + mention (this); if (uiout->is_mi_like_p ()) uiout->field_string ("reason", @@ -9945,16 +9940,15 @@ masked_watchpoint::works_in_software_mode () const enum print_stop_action masked_watchpoint::print_it (const bpstat *bs) const { - struct breakpoint *b = bs->breakpoint_at; struct ui_out *uiout = current_uiout; /* Masked watchpoints have only one location. */ - gdb_assert (b->loc && b->loc->next == NULL); + gdb_assert (this->loc && this->loc->next == nullptr); - annotate_watchpoint (b->number); + annotate_watchpoint (this->number); maybe_print_thread_hit_breakpoint (uiout); - switch (b->type) + switch (this->type) { case bp_hardware_watchpoint: if (uiout->is_mi_like_p ()) @@ -9978,7 +9972,7 @@ masked_watchpoint::print_it (const bpstat *bs) const internal_error (_("Invalid hardware watchpoint type.")); } - mention (b); + mention (this); uiout->text (_("\n\ Check the underlying instruction at PC for the memory\n\ address and value which triggered this watchpoint.\n")); -- 2.30.2