mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-23 13:21:43 +08:00
Make parse_debug_format_options return an std::string
This avoid having to manually free the return value. gdb/gdbserver/ChangeLog: * server.c (parse_debug_format_options): Return std::string. (handle_monitor_command, captured_main): Adjust.
This commit is contained in:
parent
b01ba14d4d
commit
2cc050302c
@ -1,3 +1,8 @@
|
||||
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* server.c (parse_debug_format_options): Return std::string.
|
||||
(handle_monitor_command, captured_main): Adjust.
|
||||
|
||||
2018-01-05 Pedro Alves <palves@redhat.com>
|
||||
|
||||
PR gdb/18653
|
||||
|
@ -1295,7 +1295,7 @@ handle_detach (char *own_buf)
|
||||
to gdb's "set debug foo on|off" because we also use this function to
|
||||
parse "--debug-format=foo,bar". */
|
||||
|
||||
static char *
|
||||
static std::string
|
||||
parse_debug_format_options (const char *arg, int is_monitor)
|
||||
{
|
||||
VEC (char_ptr) *options;
|
||||
@ -1338,8 +1338,8 @@ parse_debug_format_options (const char *arg, int is_monitor)
|
||||
}
|
||||
else
|
||||
{
|
||||
char *msg = xstrprintf ("Unknown debug-format argument: \"%s\"\n",
|
||||
option);
|
||||
std::string msg
|
||||
= string_printf ("Unknown debug-format argument: \"%s\"\n", option);
|
||||
|
||||
free_char_ptr_vec (options);
|
||||
return msg;
|
||||
@ -1347,7 +1347,7 @@ parse_debug_format_options (const char *arg, int is_monitor)
|
||||
}
|
||||
|
||||
free_char_ptr_vec (options);
|
||||
return NULL;
|
||||
return std::string ();
|
||||
}
|
||||
|
||||
/* Handle monitor commands not handled by target-specific handlers. */
|
||||
@ -1387,16 +1387,15 @@ handle_monitor_command (char *mon, char *own_buf)
|
||||
}
|
||||
else if (startswith (mon, "set debug-format "))
|
||||
{
|
||||
char *error_msg
|
||||
std::string error_msg
|
||||
= parse_debug_format_options (mon + sizeof ("set debug-format ") - 1,
|
||||
1);
|
||||
|
||||
if (error_msg != NULL)
|
||||
if (!error_msg.empty ())
|
||||
{
|
||||
monitor_output (error_msg);
|
||||
monitor_output (error_msg.c_str ());
|
||||
monitor_show_help ();
|
||||
write_enn (own_buf);
|
||||
xfree (error_msg);
|
||||
}
|
||||
}
|
||||
else if (strcmp (mon, "help") == 0)
|
||||
@ -3611,13 +3610,13 @@ captured_main (int argc, char *argv[])
|
||||
debug_threads = 1;
|
||||
else if (startswith (*next_arg, "--debug-format="))
|
||||
{
|
||||
char *error_msg
|
||||
std::string error_msg
|
||||
= parse_debug_format_options ((*next_arg)
|
||||
+ sizeof ("--debug-format=") - 1, 0);
|
||||
|
||||
if (error_msg != NULL)
|
||||
if (!error_msg.empty ())
|
||||
{
|
||||
fprintf (stderr, "%s", error_msg);
|
||||
fprintf (stderr, "%s", error_msg.c_str ());
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user