aboutsummaryrefslogtreecommitdiff
path: root/gdb/target
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@ericsson.com>2017-09-03 10:23:31 +0200
committerSimon Marchi <simon.marchi@ericsson.com>2017-09-03 10:23:31 +0200
commit23fdd69e42180578b3e15ba8f053fadde965bfe8 (patch)
tree5f8dc1441127578fe91dde474ec94ccde1413e94 /gdb/target
parentf04bdfa7b261402bfa9dbdde58b2feb14becd8a3 (diff)
downloadbinutils-23fdd69e42180578b3e15ba8f053fadde965bfe8.zip
binutils-23fdd69e42180578b3e15ba8f053fadde965bfe8.tar.gz
binutils-23fdd69e42180578b3e15ba8f053fadde965bfe8.tar.bz2
Make target_waitstatus_to_string return an std::string
A quite straightforward change. It does "fix" leaks in record-btrace.c, although since this is only used in debug printing code, it has no real world impact. gdb/ChangeLog: * target/waitstatus.h (target_waitstatus_to_string): Change return type to std::string. * target/waitstatus.c (target_waitstatus_to_string): Return std::string. * target.h (target_waitstatus_to_string): Remove declaration. * infrun.c (resume, clear_proceed_status_thread, print_target_wait_results, do_target_wait, save_waitstatus, stop_all_threads): Adjust. * record-btrace.c (record_btrace_wait): Adjust. * target-debug.h (target_debug_print_struct_target_waitstatus_p): Adjust. gdb/gdbserver/ChangeLog: * linux-low.c (linux_wait_1): Adjust. * server.c (queue_stop_reply_callback): Adjust.
Diffstat (limited to 'gdb/target')
-rw-r--r--gdb/target/waitstatus.c48
-rw-r--r--gdb/target/waitstatus.h5
2 files changed, 26 insertions, 27 deletions
diff --git a/gdb/target/waitstatus.c b/gdb/target/waitstatus.c
index c59d1b6..eede2d6 100644
--- a/gdb/target/waitstatus.c
+++ b/gdb/target/waitstatus.c
@@ -23,7 +23,7 @@
/* Return a pretty printed form of target_waitstatus.
Space for the result is malloc'd, caller must free. */
-char *
+std::string
target_waitstatus_to_string (const struct target_waitstatus *ws)
{
const char *kind_str = "status->kind = ";
@@ -31,44 +31,44 @@ target_waitstatus_to_string (const struct target_waitstatus *ws)
switch (ws->kind)
{
case TARGET_WAITKIND_EXITED:
- return xstrprintf ("%sexited, status = %d",
- kind_str, ws->value.integer);
+ return string_printf ("%sexited, status = %d",
+ kind_str, ws->value.integer);
case TARGET_WAITKIND_STOPPED:
- return xstrprintf ("%sstopped, signal = %s",
- kind_str,
- gdb_signal_to_symbol_string (ws->value.sig));
+ return string_printf ("%sstopped, signal = %s",
+ kind_str,
+ gdb_signal_to_symbol_string (ws->value.sig));
case TARGET_WAITKIND_SIGNALLED:
- return xstrprintf ("%ssignalled, signal = %s",
- kind_str,
- gdb_signal_to_symbol_string (ws->value.sig));
+ return string_printf ("%ssignalled, signal = %s",
+ kind_str,
+ gdb_signal_to_symbol_string (ws->value.sig));
case TARGET_WAITKIND_LOADED:
- return xstrprintf ("%sloaded", kind_str);
+ return string_printf ("%sloaded", kind_str);
case TARGET_WAITKIND_FORKED:
- return xstrprintf ("%sforked", kind_str);
+ return string_printf ("%sforked", kind_str);
case TARGET_WAITKIND_VFORKED:
- return xstrprintf ("%svforked", kind_str);
+ return string_printf ("%svforked", kind_str);
case TARGET_WAITKIND_EXECD:
- return xstrprintf ("%sexecd", kind_str);
+ return string_printf ("%sexecd", kind_str);
case TARGET_WAITKIND_VFORK_DONE:
- return xstrprintf ("%svfork-done", kind_str);
+ return string_printf ("%svfork-done", kind_str);
case TARGET_WAITKIND_SYSCALL_ENTRY:
- return xstrprintf ("%sentered syscall", kind_str);
+ return string_printf ("%sentered syscall", kind_str);
case TARGET_WAITKIND_SYSCALL_RETURN:
- return xstrprintf ("%sexited syscall", kind_str);
+ return string_printf ("%sexited syscall", kind_str);
case TARGET_WAITKIND_SPURIOUS:
- return xstrprintf ("%sspurious", kind_str);
+ return string_printf ("%sspurious", kind_str);
case TARGET_WAITKIND_IGNORE:
- return xstrprintf ("%signore", kind_str);
+ return string_printf ("%signore", kind_str);
case TARGET_WAITKIND_NO_HISTORY:
- return xstrprintf ("%sno-history", kind_str);
+ return string_printf ("%sno-history", kind_str);
case TARGET_WAITKIND_NO_RESUMED:
- return xstrprintf ("%sno-resumed", kind_str);
+ return string_printf ("%sno-resumed", kind_str);
case TARGET_WAITKIND_THREAD_CREATED:
- return xstrprintf ("%sthread created", kind_str);
+ return string_printf ("%sthread created", kind_str);
case TARGET_WAITKIND_THREAD_EXITED:
- return xstrprintf ("%sthread exited, status = %d",
- kind_str, ws->value.integer);
+ return string_printf ("%sthread exited, status = %d",
+ kind_str, ws->value.integer);
default:
- return xstrprintf ("%sunknown???", kind_str);
+ return string_printf ("%sunknown???", kind_str);
}
}
diff --git a/gdb/target/waitstatus.h b/gdb/target/waitstatus.h
index 52be390..8eee198 100644
--- a/gdb/target/waitstatus.h
+++ b/gdb/target/waitstatus.h
@@ -145,8 +145,7 @@ enum target_stop_reason
/* Prototypes */
-/* Return a pretty printed form of target_waitstatus.
- Space for the result is malloc'd, caller must free. */
-extern char *target_waitstatus_to_string (const struct target_waitstatus *);
+/* Return a pretty printed form of target_waitstatus. */
+std::string target_waitstatus_to_string (const struct target_waitstatus *);
#endif /* WAITSTATUS_H */