diff options
author | Andrew Burgess <aburgess@redhat.com> | 2023-04-05 16:12:05 +0100 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2024-03-31 11:13:34 +0100 |
commit | 8b4141cdb03e48826e2935529be7fd7499f9d815 (patch) | |
tree | 9acadf18c4d1a4aa8edcf6d459c9bc6271530683 /gdb | |
parent | 437d237a547def823434dd656e5c138a2263dd5c (diff) | |
download | gdb-8b4141cdb03e48826e2935529be7fd7499f9d815.zip gdb-8b4141cdb03e48826e2935529be7fd7499f9d815.tar.gz gdb-8b4141cdb03e48826e2935529be7fd7499f9d815.tar.bz2 |
gdb: build dprintf commands just once in code_breakpoint constructor
I noticed in code_breakpoint::code_breakpoint that we are calling
update_dprintf_command_list once for each breakpoint location, when we
really only need to call this once per breakpoint -- the data updated
by this function, the breakpoint command list -- is per breakpoint,
not per breakpoint location. Calling update_dprintf_command_list
multiple times is just wasted effort, there's no per location error
checking, we don't even pass the current location to the function.
This commit moves the update_dprintf_command_list call outside of the
per-location loop.
There should be no user visible changes after this commit.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/breakpoint.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 71c8c82..ea89c40 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -8698,15 +8698,15 @@ code_breakpoint::code_breakpoint (struct gdbarch *gdbarch_, /* Do not set breakpoint locations conditions yet. As locations are inserted, they get sorted based on their addresses. Let the list stabilize to have reliable location numbers. */ - - /* Dynamic printf requires and uses additional arguments on the - command line, otherwise it's an error. */ - if (type == bp_dprintf) - update_dprintf_command_list (this); - else if (extra_string != nullptr) - error (_("Garbage '%s' at end of command"), extra_string.get ()); } + /* Dynamic printf requires and uses additional arguments on the + command line, otherwise it's an error. */ + if (type == bp_dprintf) + update_dprintf_command_list (this); + else if (extra_string != nullptr) + error (_("Garbage '%s' at end of command"), extra_string.get ()); + /* The order of the locations is now stable. Set the location condition using the location's number. */ int loc_num = 1; |