aboutsummaryrefslogtreecommitdiff
path: root/gdb/symfile-mem.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/symfile-mem.c
parentbf4692711232eb96cd840f96d88897a2746d8190 (diff)
downloadgdb-65630365f7d073430e62b4fe65f34dcdc0a4b05e.zip
gdb-65630365f7d073430e62b4fe65f34dcdc0a4b05e.tar.gz
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/symfile-mem.c')
-rw-r--r--gdb/symfile-mem.c57
1 files changed, 19 insertions, 38 deletions
diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c
index 6f34cab..5338bdb 100644
--- a/gdb/symfile-mem.c
+++ b/gdb/symfile-mem.c
@@ -167,31 +167,6 @@ add_symbol_file_from_memory_command (const char *args, int from_tty)
symbol_file_add_from_memory (templ, addr, 0, NULL, from_tty);
}
-/* Arguments for symbol_file_add_from_memory_wrapper. */
-
-struct symbol_file_add_from_memory_args
-{
- struct bfd *bfd;
- CORE_ADDR sysinfo_ehdr;
- size_t size;
- char *name;
- int from_tty;
-};
-
-/* Wrapper function for symbol_file_add_from_memory, for
- catch_exceptions. */
-
-static int
-symbol_file_add_from_memory_wrapper (struct ui_out *uiout, void *data)
-{
- struct symbol_file_add_from_memory_args *args
- = (struct symbol_file_add_from_memory_args *) data;
-
- symbol_file_add_from_memory (args->bfd, args->sysinfo_ehdr, args->size,
- args->name, args->from_tty);
- return 0;
-}
-
/* Try to add the symbols for the vsyscall page, if there is one.
This function is called via the inferior_created observer. */
@@ -203,7 +178,6 @@ add_vsyscall_page (struct target_ops *target, int from_tty)
if (gdbarch_vsyscall_range (target_gdbarch (), &vsyscall_range))
{
struct bfd *bfd;
- struct symbol_file_add_from_memory_args args;
if (core_bfd != NULL)
bfd = core_bfd;
@@ -221,18 +195,25 @@ add_vsyscall_page (struct target_ops *target, int from_tty)
"because no executable was specified"));
return;
}
- args.bfd = bfd;
- args.sysinfo_ehdr = vsyscall_range.start;
- args.size = vsyscall_range.length;
-
- args.name = xstrprintf ("system-supplied DSO at %s",
- paddress (target_gdbarch (), vsyscall_range.start));
- /* Pass zero for FROM_TTY, because the action of loading the
- vsyscall DSO was not triggered by the user, even if the user
- typed "run" at the TTY. */
- args.from_tty = 0;
- catch_exceptions (current_uiout, symbol_file_add_from_memory_wrapper,
- &args, RETURN_MASK_ALL);
+
+ char *name = xstrprintf ("system-supplied DSO at %s",
+ paddress (target_gdbarch (), vsyscall_range.start));
+ TRY
+ {
+ /* Pass zero for FROM_TTY, because the action of loading the
+ vsyscall DSO was not triggered by the user, even if the
+ user typed "run" at the TTY. */
+ symbol_file_add_from_memory (bfd,
+ vsyscall_range.start,
+ vsyscall_range.length,
+ name,
+ 0 /* from_tty */);
+ }
+ CATCH (ex, RETURN_MASK_ALL)
+ {
+ exception_print (gdb_stderr, ex);
+ }
+ END_CATCH
}
}