aboutsummaryrefslogtreecommitdiff
path: root/gdb/breakpoint.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-02-21 16:53:56 -0700
committerTom Tromey <tom@tromey.com>2018-02-24 10:01:11 -0700
commit281d762b1a56317171e462666b98d50bfa31a08a (patch)
tree67e6831f0f8964dcd8ff2ae2bc123ad641b0ae87 /gdb/breakpoint.c
parentd4333bab0a097f4bfa36d2e49f4dfb12c73dce24 (diff)
downloadfsf-binutils-gdb-281d762b1a56317171e462666b98d50bfa31a08a.zip
fsf-binutils-gdb-281d762b1a56317171e462666b98d50bfa31a08a.tar.gz
fsf-binutils-gdb-281d762b1a56317171e462666b98d50bfa31a08a.tar.bz2
Remove cleanups from check_fast_tracepoint_sals
This changes the gdbarch fast_tracepoint_valid_at method to use a std::string as its out parameter, and then updates all the uses. This allows removing a cleanup from breakpoint.c. Regression tested by the buildbot. ChangeLog 2018-02-24 Tom Tromey <tom@tromey.com> * i386-tdep.c (i386_fast_tracepoint_valid_at): "msg" now a std::string. * gdbarch.sh (fast_tracepoint_valid_at): Change "msg" to a std::string*. * gdbarch.c: Rebuild. * gdbarch.h: Rebuild. * breakpoint.c (check_fast_tracepoint_sals): Use std::string. * arch-utils.h (default_fast_tracepoint_valid_at): Update. * arch-utils.c (default_fast_tracepoint_valid_at): "msg" now a std::string*.
Diffstat (limited to 'gdb/breakpoint.c')
-rw-r--r--gdb/breakpoint.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 91ecca6..c56084c 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -9177,10 +9177,6 @@ static void
check_fast_tracepoint_sals (struct gdbarch *gdbarch,
gdb::array_view<const symtab_and_line> sals)
{
- int rslt;
- char *msg;
- struct cleanup *old_chain;
-
for (const auto &sal : sals)
{
struct gdbarch *sarch;
@@ -9190,14 +9186,10 @@ check_fast_tracepoint_sals (struct gdbarch *gdbarch,
associated with SAL. */
if (sarch == NULL)
sarch = gdbarch;
- rslt = gdbarch_fast_tracepoint_valid_at (sarch, sal.pc, &msg);
- old_chain = make_cleanup (xfree, msg);
-
- if (!rslt)
+ std::string msg;
+ if (!gdbarch_fast_tracepoint_valid_at (sarch, sal.pc, &msg))
error (_("May not have a fast tracepoint at %s%s"),
- paddress (sarch, sal.pc), (msg ? msg : ""));
-
- do_cleanups (old_chain);
+ paddress (sarch, sal.pc), msg.c_str ());
}
}