aboutsummaryrefslogtreecommitdiff
path: root/gdb/break-catch-sig.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/break-catch-sig.c')
-rw-r--r--gdb/break-catch-sig.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/gdb/break-catch-sig.c b/gdb/break-catch-sig.c
index 06ee44c..296f900 100644
--- a/gdb/break-catch-sig.c
+++ b/gdb/break-catch-sig.c
@@ -28,7 +28,8 @@
#include "valprint.h"
#include "cli/cli-utils.h"
#include "completer.h"
-#include "gdb_obstack.h"
+
+#include <string>
#define INTERNAL_SIGNAL(x) ((x) == GDB_SIGNAL_TRAP || (x) == GDB_SIGNAL_INT)
@@ -265,11 +266,7 @@ signal_catchpoint_print_one (struct breakpoint *b,
{
int i;
gdb_signal_type iter;
- struct obstack text;
- struct cleanup *cleanup;
-
- obstack_init (&text);
- cleanup = make_cleanup_obstack_free (&text);
+ std::string text;
for (i = 0;
VEC_iterate (gdb_signal_type, c->signals_to_be_caught, i, iter);
@@ -278,12 +275,10 @@ signal_catchpoint_print_one (struct breakpoint *b,
const char *name = signal_to_name_or_int (iter);
if (i > 0)
- obstack_grow (&text, " ", 1);
- obstack_grow (&text, name, strlen (name));
+ text += " ";
+ text += name;
}
- obstack_grow (&text, "", 1);
- ui_out_field_string (uiout, "what", (const char *) obstack_base (&text));
- do_cleanups (cleanup);
+ ui_out_field_string (uiout, "what", text.c_str ());
}
else
ui_out_field_string (uiout, "what",