Add xml selftests for aarch64 target description.
[deliverable/binutils-gdb.git] / gdb / symfile-mem.c
index acbaaaf562ff1c954d0262a8485c0a0b986ffc23..4ce315d35e2cdb64fd74361d2dabc573a5619625 100644 (file)
@@ -101,9 +101,8 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
   if (nbfd == NULL)
     error (_("Failed to read a valid object file image from memory."));
 
-  gdb_bfd_ref (nbfd);
   /* Manage the new reference for the duration of this function.  */
-  gdb_bfd_ref_ptr nbfd_holder (nbfd);
+  gdb_bfd_ref_ptr nbfd_holder = new_bfd_ref (nbfd);
 
   xfree (bfd_get_filename (nbfd));
   if (name == NULL)
@@ -145,7 +144,7 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
 
 
 static void
-add_symbol_file_from_memory_command (char *args, int from_tty)
+add_symbol_file_from_memory_command (const char *args, int from_tty)
 {
   CORE_ADDR addr;
   struct bfd *templ;
@@ -167,31 +166,6 @@ add_symbol_file_from_memory_command (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 +177,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,26 +194,28 @@ 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
     }
 }
 
-\f
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_symfile_mem;
-
 void
 _initialize_symfile_mem (void)
 {
This page took 0.02933 seconds and 4 git commands to generate.