* cli/cli-interp.c (struct captured_execute_command_args):

Remove.
	(do_captured_execute_command): Remove.
	(safe_execute_command): Use TRY_CATCH.
	* cli/cli-script.c (struct wrapped_read_command_file_args):
	Remove.
	(wrapped_read_command_file): Remove.
	(script_from_file): Use TRY_CATCH.
	* exceptions.c (catch_exception): Remove.
	* exceptions.h (catch_exception): Remove.
	(deprecated_throw_reason): Update comment.
	* mi/mi-main.c (captured_mi_execute_command): Change 'data'
	argument to 'context'.
	(mi_execute_command): Use TRY_CATCH.
	* remote.c (struct start_remote_args): Remove.
	(remote_start_remote): Update; change arguments.
	(remote_open_1): Use TRY_CATCH.
This commit is contained in:
Tom Tromey
2011-04-04 18:13:05 +00:00
parent 58438ac187
commit 04bd08de86
7 changed files with 51 additions and 98 deletions

View File

@ -1,3 +1,23 @@
2011-04-04 Tom Tromey <tromey@redhat.com>
* cli/cli-interp.c (struct captured_execute_command_args):
Remove.
(do_captured_execute_command): Remove.
(safe_execute_command): Use TRY_CATCH.
* cli/cli-script.c (struct wrapped_read_command_file_args):
Remove.
(wrapped_read_command_file): Remove.
(script_from_file): Use TRY_CATCH.
* exceptions.c (catch_exception): Remove.
* exceptions.h (catch_exception): Remove.
(deprecated_throw_reason): Update comment.
* mi/mi-main.c (captured_mi_execute_command): Change 'data'
argument to 'context'.
(mi_execute_command): Use TRY_CATCH.
* remote.c (struct start_remote_args): Remove.
(remote_start_remote): Update; change arguments.
(remote_open_1): Use TRY_CATCH.
2011-04-04 Tom Tromey <tromey@redhat.com> 2011-04-04 Tom Tromey <tromey@redhat.com>
* tracepoint.c (scope_info): Update. * tracepoint.c (scope_info): Update.

View File

@ -37,12 +37,6 @@ struct ui_out *cli_uiout;
static struct gdb_exception safe_execute_command (struct ui_out *uiout, static struct gdb_exception safe_execute_command (struct ui_out *uiout,
char *command, char *command,
int from_tty); int from_tty);
struct captured_execute_command_args
{
char *command;
int from_tty;
};
/* These implement the cli out interpreter: */ /* These implement the cli out interpreter: */
static void * static void *
@ -117,25 +111,15 @@ cli_interpreter_exec (void *data, const char *command_str)
return result; return result;
} }
static void
do_captured_execute_command (struct ui_out *uiout, void *data)
{
struct captured_execute_command_args *args =
(struct captured_execute_command_args *) data;
execute_command (args->command, args->from_tty);
}
static struct gdb_exception static struct gdb_exception
safe_execute_command (struct ui_out *uiout, char *command, int from_tty) safe_execute_command (struct ui_out *uiout, char *command, int from_tty)
{ {
struct gdb_exception e; volatile struct gdb_exception e;
struct captured_execute_command_args args;
args.command = command; TRY_CATCH (e, RETURN_MASK_ALL)
args.from_tty = from_tty; {
e = catch_exception (uiout, do_captured_execute_command, &args, execute_command (command, from_tty);
RETURN_MASK_ALL); }
/* FIXME: cagney/2005-01-13: This shouldn't be needed. Instead the /* FIXME: cagney/2005-01-13: This shouldn't be needed. Instead the
caller should print the exception. */ caller should print the exception. */
exception_print (gdb_stderr, e); exception_print (gdb_stderr, e);

View File

@ -1589,19 +1589,6 @@ source_cleanup_lines (void *args)
source_file_name = p->old_file; source_file_name = p->old_file;
} }
struct wrapped_read_command_file_args
{
FILE *stream;
};
static void
wrapped_read_command_file (struct ui_out *uiout, void *data)
{
struct wrapped_read_command_file_args *args = data;
read_command_file (args->stream);
}
/* Used to implement source_command. */ /* Used to implement source_command. */
void void
@ -1625,12 +1612,12 @@ script_from_file (FILE *stream, const char *file)
error_pre_print = ""; error_pre_print = "";
{ {
struct gdb_exception e; volatile struct gdb_exception e;
struct wrapped_read_command_file_args args;
args.stream = stream; TRY_CATCH (e, RETURN_MASK_ERROR)
e = catch_exception (uiout, wrapped_read_command_file, &args, {
RETURN_MASK_ERROR); read_command_file (stream);
}
switch (e.reason) switch (e.reason)
{ {
case 0: case 0:

View File

@ -458,21 +458,6 @@ catch_exceptions (struct ui_out *uiout,
return catch_exceptions_with_msg (uiout, func, func_args, NULL, mask); return catch_exceptions_with_msg (uiout, func, func_args, NULL, mask);
} }
struct gdb_exception
catch_exception (struct ui_out *uiout,
catch_exception_ftype *func,
void *func_args,
return_mask mask)
{
volatile struct gdb_exception exception;
TRY_CATCH (exception, mask)
{
(*func) (uiout, func_args);
}
return exception;
}
int int
catch_exceptions_with_msg (struct ui_out *uiout, catch_exceptions_with_msg (struct ui_out *uiout,
catch_exceptions_ftype *func, catch_exceptions_ftype *func,

View File

@ -182,8 +182,8 @@ extern void throw_vfatal (const char *fmt, va_list ap)
extern void throw_error (enum errors error, const char *fmt, ...) extern void throw_error (enum errors error, const char *fmt, ...)
ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3); ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3);
/* Instead of deprecated_throw_reason, code should use catch_exception /* Instead of deprecated_throw_reason, code should use
and throw_exception. */ throw_exception. */
extern void deprecated_throw_reason (enum return_reason reason) extern void deprecated_throw_reason (enum return_reason reason)
ATTRIBUTE_NORETURN; ATTRIBUTE_NORETURN;
@ -234,14 +234,6 @@ extern int catch_exceptions_with_msg (struct ui_out *uiout,
char **gdberrmsg, char **gdberrmsg,
return_mask mask); return_mask mask);
/* This function, in addition, suppresses the printing of the captured
error message. It's up to the client to print it. */
extern struct gdb_exception catch_exception (struct ui_out *uiout,
catch_exception_ftype *func,
void *func_args,
return_mask mask);
/* If CATCH_ERRORS_FTYPE throws an error, catch_errors() returns zero /* If CATCH_ERRORS_FTYPE throws an error, catch_errors() returns zero
otherwize the result from CATCH_ERRORS_FTYPE is returned. It is otherwize the result from CATCH_ERRORS_FTYPE is returned. It is
probably useful for CATCH_ERRORS_FTYPE to always return a non-zero probably useful for CATCH_ERRORS_FTYPE to always return a non-zero

View File

@ -1816,10 +1816,9 @@ mi_cmd_remove_inferior (char *command, char **argv, int argc)
prompt, display error). */ prompt, display error). */
static void static void
captured_mi_execute_command (struct ui_out *uiout, void *data) captured_mi_execute_command (struct ui_out *uiout, struct mi_parse *context)
{ {
struct cleanup *cleanup; struct cleanup *cleanup;
struct mi_parse *context = (struct mi_parse *) data;
if (do_timings) if (do_timings)
current_command_ts = context->cmd_start; current_command_ts = context->cmd_start;
@ -1947,7 +1946,7 @@ mi_execute_command (char *cmd, int from_tty)
} }
else else
{ {
struct gdb_exception result; volatile struct gdb_exception result;
ptid_t previous_ptid = inferior_ptid; ptid_t previous_ptid = inferior_ptid;
command->token = token; command->token = token;
@ -1959,8 +1958,10 @@ mi_execute_command (char *cmd, int from_tty)
timestamp (command->cmd_start); timestamp (command->cmd_start);
} }
result = catch_exception (uiout, captured_mi_execute_command, command, TRY_CATCH (result, RETURN_MASK_ALL)
RETURN_MASK_ALL); {
captured_mi_execute_command (uiout, command);
}
if (result.reason < 0) if (result.reason < 0)
{ {
/* The command execution failed and error() was called /* The command execution failed and error() was called

View File

@ -3097,19 +3097,6 @@ set_stop_requested_callback (struct thread_info *thread, void *data)
return 0; return 0;
} }
/* Stub for catch_exception. */
struct start_remote_args
{
int from_tty;
/* The current target. */
struct target_ops *target;
/* Non-zero if this is an extended-remote target. */
int extended_p;
};
/* Send interrupt_sequence to remote target. */ /* Send interrupt_sequence to remote target. */
static void static void
send_interrupt_sequence (void) send_interrupt_sequence (void)
@ -3130,9 +3117,8 @@ send_interrupt_sequence (void)
} }
static void static void
remote_start_remote (struct ui_out *uiout, void *opaque) remote_start_remote (int from_tty, struct target_ops *target, int extended_p)
{ {
struct start_remote_args *args = opaque;
struct remote_state *rs = get_remote_state (); struct remote_state *rs = get_remote_state ();
struct packet_config *noack_config; struct packet_config *noack_config;
char *wait_status = NULL; char *wait_status = NULL;
@ -3179,7 +3165,7 @@ remote_start_remote (struct ui_out *uiout, void *opaque)
rs->noack_mode = 1; rs->noack_mode = 1;
} }
if (args->extended_p) if (extended_p)
{ {
/* Tell the remote that we are using the extended protocol. */ /* Tell the remote that we are using the extended protocol. */
putpkt ("!"); putpkt ("!");
@ -3197,7 +3183,7 @@ remote_start_remote (struct ui_out *uiout, void *opaque)
/* On OSs where the list of libraries is global to all /* On OSs where the list of libraries is global to all
processes, we fetch them early. */ processes, we fetch them early. */
if (gdbarch_has_global_solist (target_gdbarch)) if (gdbarch_has_global_solist (target_gdbarch))
solib_add (NULL, args->from_tty, args->target, auto_solib_add); solib_add (NULL, from_tty, target, auto_solib_add);
if (non_stop) if (non_stop)
{ {
@ -3215,7 +3201,7 @@ remote_start_remote (struct ui_out *uiout, void *opaque)
controlling. We default to adding them in the running state. controlling. We default to adding them in the running state.
The '?' query below will then tell us about which threads are The '?' query below will then tell us about which threads are
stopped. */ stopped. */
remote_threads_info (args->target); remote_threads_info (target);
} }
else if (rs->non_stop_aware) else if (rs->non_stop_aware)
{ {
@ -3236,7 +3222,7 @@ remote_start_remote (struct ui_out *uiout, void *opaque)
{ {
if (rs->buf[0] == 'W' || rs->buf[0] == 'X') if (rs->buf[0] == 'W' || rs->buf[0] == 'X')
{ {
if (!args->extended_p) if (!extended_p)
error (_("The target is not running (try extended-remote?)")); error (_("The target is not running (try extended-remote?)"));
/* We're connected, but not running. Drop out before we /* We're connected, but not running. Drop out before we
@ -3276,7 +3262,7 @@ remote_start_remote (struct ui_out *uiout, void *opaque)
how to do it some other way, try again. This is not how to do it some other way, try again. This is not
supported for non-stop; it could be, but it is tricky if supported for non-stop; it could be, but it is tricky if
there are no stopped threads when we connect. */ there are no stopped threads when we connect. */
if (remote_read_description_p (args->target) if (remote_read_description_p (target)
&& gdbarch_target_desc (target_gdbarch) == NULL) && gdbarch_target_desc (target_gdbarch) == NULL)
{ {
target_clear_description (); target_clear_description ();
@ -3289,7 +3275,7 @@ remote_start_remote (struct ui_out *uiout, void *opaque)
rs->cached_wait_status = 1; rs->cached_wait_status = 1;
immediate_quit--; immediate_quit--;
start_remote (args->from_tty); /* Initialize gdb process mechanisms. */ start_remote (from_tty); /* Initialize gdb process mechanisms. */
} }
else else
{ {
@ -3331,7 +3317,7 @@ remote_start_remote (struct ui_out *uiout, void *opaque)
if (thread_count () == 0) if (thread_count () == 0)
{ {
if (!args->extended_p) if (!extended_p)
error (_("The target is not running (try extended-remote?)")); error (_("The target is not running (try extended-remote?)"));
/* We're connected, but not running. Drop out before we /* We're connected, but not running. Drop out before we
@ -4060,14 +4046,12 @@ remote_open_1 (char *name, int from_tty,
all the ``target ....'' commands to share a common callback all the ``target ....'' commands to share a common callback
function. See cli-dump.c. */ function. See cli-dump.c. */
{ {
struct gdb_exception ex; volatile struct gdb_exception ex;
struct start_remote_args args;
args.from_tty = from_tty; TRY_CATCH (ex, RETURN_MASK_ALL)
args.target = target; {
args.extended_p = extended_p; remote_start_remote (from_tty, target, extended_p);
}
ex = catch_exception (uiout, remote_start_remote, &args, RETURN_MASK_ALL);
if (ex.reason < 0) if (ex.reason < 0)
{ {
/* Pop the partially set up target - unless something else did /* Pop the partially set up target - unless something else did