aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote-fileio.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2017-10-10 16:45:51 +0100
committerPedro Alves <palves@redhat.com>2017-10-10 17:01:25 +0100
commit65630365f7d073430e62b4fe65f34dcdc0a4b05e (patch)
treea719688b221a7f234a045feb5a7fcee83ed93d95 /gdb/remote-fileio.c
parentbf4692711232eb96cd840f96d88897a2746d8190 (diff)
downloadfsf-binutils-gdb-65630365f7d073430e62b4fe65f34dcdc0a4b05e.zip
fsf-binutils-gdb-65630365f7d073430e62b4fe65f34dcdc0a4b05e.tar.gz
fsf-binutils-gdb-65630365f7d073430e62b4fe65f34dcdc0a4b05e.tar.bz2
Eliminate catch_exceptions/catch_exceptions_with_msg
This patch gets rid of catch_exceptions / catch_exceptions_with_msg. The latter is done mostly by getting rid of the three remaining vestigial libgdb wrapper functions, which are really pointless nowadays. This results in a good number of simplifications. (I checked that Insight doesn't use those functions.) The gdb.mi/mi-pthreads.exp change is necessary because this actually fixes a bug, IMO -- the patch stops MI's -thread-select causing output on the CLI stream. I.e., before: -thread-select 123456789 &"Thread ID 123456789 not known.\n" ^error,msg="Thread ID 123456789 not known." (gdb) After: -thread-select 123456789 ^error,msg="Thread ID 123456789 not known." (gdb) gdb/ChangeLog 2017-10-10 Pedro Alves <palves@redhat.com> Tom Tromey <tom@tromey.com> * breakpoint.c (struct captured_breakpoint_query_args) (do_captured_breakpoint_query, gdb_breakpoint_query): Delete. (print_breakpoint): New. * breakpoint.h (print_breakpoint): Declare. * common/common-exceptions.h (enum return_reason): Remove references to catch_exceptions. * exceptions.c (catch_exceptions, catch_exceptions_with_msg): Delete. * exceptions.h (catch_exceptions_ftype, catch_exceptions) (catch_exception_ftype, catch_exceptions_with_msg): Delete. * gdb.h: Delete. * gdbthread.h (thread_select): Declare. * mi/mi-cmd-break.c: Don't include gdb.h. (breakpoint_notify): Use print_breakpoint. * mi/mi-cmd-catch.c: Don't include gdb.h. * mi/mi-interp.c: Don't include gdb.h. (mi_print_breakpoint_for_event): New. (mi_breakpoint_created, mi_breakpoint_modified): Use mi_print_breakpoint_for_event. * mi/mi-main.c: Don't include gdb.h. (mi_cmd_thread_select): Parse the global thread ID here. Use thread_select instead of gdb_thread_select. (mi_cmd_thread_list_ids): Output "thread-ids" tuple here instead of using gdb_list_thread_ids. * remote-fileio.c (do_remote_fileio_request): Change type. Reply FILEIO_ENOSYS here. (remote_fileio_request): Use TRY/CATCH instead of catch_exceptions. * symfile-mem.c (struct symbol_file_add_from_memory_args) (symbol_file_add_from_memory_wrapper): Delete. (add_vsyscall_page): Use TRY/CATCH instead of catch_exceptions. * thread.c: Don't include gdb.h. (do_captured_list_thread_ids, gdb_list_thread_ids): Delete. (thread_alive): Use thread_select. (do_captured_thread_select): Delete, parts salvaged as ... (thread_select): ... this new function. (gdb_thread_select): Delete. gdb/testsuite/ChangeLog 2017-10-10 Pedro Alves <palves@redhat.com> * gdb.mi/mi-pthreads.exp (check_mi_thread_command_set): Don't expect CLI output.
Diffstat (limited to 'gdb/remote-fileio.c')
-rw-r--r--gdb/remote-fileio.c35
1 files changed, 16 insertions, 19 deletions
diff --git a/gdb/remote-fileio.c b/gdb/remote-fileio.c
index c305171..8771893 100644
--- a/gdb/remote-fileio.c
+++ b/gdb/remote-fileio.c
@@ -1118,10 +1118,9 @@ static struct {
{ NULL, NULL }
};
-static int
-do_remote_fileio_request (struct ui_out *uiout, void *buf_arg)
+static void
+do_remote_fileio_request (char *buf)
{
- char *buf = (char *) buf_arg;
char *c;
int idx;
@@ -1135,10 +1134,10 @@ do_remote_fileio_request (struct ui_out *uiout, void *buf_arg)
for (idx = 0; remote_fio_func_map[idx].name; ++idx)
if (!strcmp (remote_fio_func_map[idx].name, buf))
break;
- if (!remote_fio_func_map[idx].name) /* ERROR: No such function. */
- return RETURN_ERROR;
- remote_fio_func_map[idx].func (c);
- return 0;
+ if (!remote_fio_func_map[idx].name)
+ remote_fileio_reply (-1, FILEIO_ENOSYS);
+ else
+ remote_fio_func_map[idx].func (c);
}
/* Close any open descriptors, and reinitialize the file mapping. */
@@ -1188,20 +1187,18 @@ remote_fileio_request (char *buf, int ctrlc_pending_p)
}
else
{
- ex = catch_exceptions (current_uiout,
- do_remote_fileio_request, (void *)buf,
- RETURN_MASK_ALL);
- switch (ex)
+ TRY
{
- case RETURN_ERROR:
- remote_fileio_reply (-1, FILEIO_ENOSYS);
- break;
- case RETURN_QUIT:
- remote_fileio_reply (-1, FILEIO_EINTR);
- break;
- default:
- break;
+ do_remote_fileio_request (buf);
+ }
+ CATCH (ex, RETURN_MASK_ALL)
+ {
+ if (ex.reason == RETURN_QUIT)
+ remote_fileio_reply (-1, FILEIO_EINTR);
+ else
+ remote_fileio_reply (-1, FILEIO_EIO);
}
+ END_CATCH
}
quit_handler = remote_fileio_o_quit_handler;