@@ -1,5 +1,19 @@
2017-09-12 Tom Tromey <tom@tromey.com>
+ * thread.c (gdb_list_thread_ids, gdb_thread_select): Change
+ error_message to std::string.
+ * mi/mi-main.c (mi_cmd_thread_select): Use std::string.
+ (mi_cmd_thread_list_ids): Likewise.
+ * gdb.h (gdb_breakpoint_query, gdb_thread_select)
+ (gdb_list_thread_ids): Update.
+ * exceptions.h (catch_exceptions_with_msg): Update.
+ * exceptions.c (catch_exceptions_with_msg): Change error_message
+ to std::string.
+ * breakpoint.c (enum gdb_rc): Change error_message to
+ std::string.
+
+2017-09-12 Tom Tromey <tom@tromey.com>
+
* mi/mi-parse.c (mi_parse): Remove unused declaration.
2017-09-12 Tom Tromey <tom@tromey.com>
@@ -6750,7 +6750,7 @@ do_captured_breakpoint_query (struct ui_out *uiout, void *data)
enum gdb_rc
gdb_breakpoint_query (struct ui_out *uiout, int bnum,
- char **error_message)
+ std::string *error_message)
{
struct captured_breakpoint_query_args args;
@@ -167,7 +167,7 @@ int
catch_exceptions_with_msg (struct ui_out *func_uiout,
catch_exceptions_ftype *func,
void *func_args,
- char **gdberrmsg,
+ std::string *gdberrmsg,
return_mask mask)
{
struct gdb_exception exception = exception_none;
@@ -206,13 +206,8 @@ catch_exceptions_with_msg (struct ui_out *func_uiout,
/* If caller wants a copy of the low-level error message, make
one. This is used in the case of a silent error whereby the
caller may optionally want to issue the message. */
- if (gdberrmsg != NULL)
- {
- if (exception.message != NULL)
- *gdberrmsg = xstrdup (exception.message);
- else
- *gdberrmsg = NULL;
- }
+ if (gdberrmsg != NULL && exception.message != NULL)
+ *gdberrmsg = exception.message;
return exception.reason;
}
return val;
@@ -73,7 +73,7 @@ typedef void (catch_exception_ftype) (struct ui_out *ui_out, void *args);
extern int catch_exceptions_with_msg (struct ui_out *uiout,
catch_exceptions_ftype *func,
void *func_args,
- char **gdberrmsg,
+ std::string *gdberrmsg,
return_mask mask);
/* If CATCH_ERRORS_FTYPE throws an error, catch_errors() returns zero
@@ -45,14 +45,14 @@ enum gdb_rc {
/* Print the specified breakpoint on GDB_STDOUT. (Eventually this
function will ``print'' the object on ``output''). */
enum gdb_rc gdb_breakpoint_query (struct ui_out *uiout, int bnum,
- char **error_message);
+ std::string *error_message);
/* Switch thread and print notification. */
enum gdb_rc gdb_thread_select (struct ui_out *uiout, char *tidstr,
- char **error_message);
+ std::string *error_message);
/* Print a list of known thread ids. */
enum gdb_rc gdb_list_thread_ids (struct ui_out *uiout,
- char **error_message);
+ std::string *error_message);
#endif
@@ -554,7 +554,7 @@ void
mi_cmd_thread_select (const char *command, char **argv, int argc)
{
enum gdb_rc rc;
- char *mi_error_message;
+ std::string mi_error_message;
ptid_t previous_ptid = inferior_ptid;
if (argc != 1)
@@ -564,10 +564,7 @@ mi_cmd_thread_select (const char *command, char **argv, int argc)
/* If thread switch did not succeed don't notify or print. */
if (rc == GDB_RC_FAIL)
- {
- make_cleanup (xfree, mi_error_message);
- error ("%s", mi_error_message);
- }
+ error ("%s", mi_error_message.c_str ());
print_selected_thread_frame (current_uiout,
USER_SELECTED_THREAD | USER_SELECTED_FRAME);
@@ -584,7 +581,7 @@ void
mi_cmd_thread_list_ids (const char *command, char **argv, int argc)
{
enum gdb_rc rc;
- char *mi_error_message;
+ std::string mi_error_message;
if (argc != 0)
error (_("-thread-list-ids: No arguments required."));
@@ -592,10 +589,7 @@ mi_cmd_thread_list_ids (const char *command, char **argv, int argc)
rc = gdb_list_thread_ids (current_uiout, &mi_error_message);
if (rc == GDB_RC_FAIL)
- {
- make_cleanup (xfree, mi_error_message);
- error ("%s", mi_error_message);
- }
+ error ("%s", mi_error_message.c_str ());
}
void
@@ -744,7 +744,7 @@ do_captured_list_thread_ids (struct ui_out *uiout, void *arg)
/* Official gdblib interface function to get a list of thread ids and
the total number. */
enum gdb_rc
-gdb_list_thread_ids (struct ui_out *uiout, char **error_message)
+gdb_list_thread_ids (struct ui_out *uiout, std::string *error_message)
{
if (catch_exceptions_with_msg (uiout, do_captured_list_thread_ids, NULL,
error_message, RETURN_MASK_ALL) < 0)
@@ -2056,7 +2056,7 @@ print_selected_thread_frame (struct ui_out *uiout,
}
enum gdb_rc
-gdb_thread_select (struct ui_out *uiout, char *tidstr, char **error_message)
+gdb_thread_select (struct ui_out *uiout, char *tidstr, std::string *error_message)
{
if (catch_exceptions_with_msg (uiout, do_captured_thread_select, tidstr,
error_message, RETURN_MASK_ALL) < 0)