gdb/testsuite: Reduce test name duplication in gdb.python tests
[deliverable/binutils-gdb.git] / gdb / solib.c
index b28ebc628cb1a190b0450af246bb50b78e715485..db6a52d2c147fccd8cb7004753354d35e1f7ff42 100644 (file)
@@ -1,6 +1,6 @@
 /* Handle shared libraries for GDB, the GNU Debugger.
 
-   Copyright (C) 1990-2018 Free Software Foundation, Inc.
+   Copyright (C) 1990-2019 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,7 +31,7 @@
 #include "frame.h"
 #include "gdb_regex.h"
 #include "inferior.h"
-#include "environ.h"
+#include "gdbsupport/environ.h"
 #include "language.h"
 #include "gdbcmd.h"
 #include "completer.h"
@@ -45,8 +45,9 @@
 #include "interps.h"
 #include "filesystem.h"
 #include "gdb_bfd.h"
-#include "filestuff.h"
+#include "gdbsupport/filestuff.h"
 #include "source.h"
+#include "cli/cli-style.h"
 
 /* Architecture-specific operations.  */
 
@@ -233,7 +234,7 @@ solib_find_1 (const char *in_pathname, int *fd, int is_solib)
         | target:some/dir |           | /foo/bar.dll   |
 
        IOW, we don't need to add a separator if IN_PATHNAME already
-       has one, or when the the sysroot is exactly "target:".
+       has one, or when the sysroot is exactly "target:".
        There's no need to check for drive spec explicitly, as we only
        get here if IN_PATHNAME is considered an absolute path.  */
       need_dir_separator = !(IS_DIR_SEPARATOR (in_pathname[0])
@@ -502,14 +503,14 @@ solib_bfd_open (const char *pathname)
   /* Check bfd format.  */
   if (!bfd_check_format (abfd.get (), bfd_object))
     error (_("`%s': not in executable format: %s"),
-          bfd_get_filename (abfd), bfd_errmsg (bfd_get_error ()));
+          bfd_get_filename (abfd.get ()), bfd_errmsg (bfd_get_error ()));
 
   /* Check bfd arch.  */
   b = gdbarch_bfd_arch_info (target_gdbarch ());
   if (!b->compatible (b, bfd_get_arch_info (abfd.get ())))
     warning (_("`%s': Shared library architecture %s is not compatible "
-               "with target architecture %s."), bfd_get_filename (abfd),
-             bfd_get_arch_info (abfd.get ())->printable_name,
+              "with target architecture %s."), bfd_get_filename (abfd.get ()),
+            bfd_get_arch_info (abfd.get ())->printable_name,
             b->printable_name);
 
   return abfd;
@@ -674,14 +675,18 @@ solib_read_symbols (struct so_list *so, symfile_add_flags flags)
 
       flags |= current_inferior ()->symfile_flags;
 
-      TRY
+      try
        {
          /* Have we already loaded this shared object?  */
-         ALL_OBJFILES (so->objfile)
+         so->objfile = nullptr;
+         for (objfile *objfile : current_program_space->objfiles ())
            {
-             if (filename_cmp (objfile_name (so->objfile), so->so_name) == 0
-                 && so->objfile->addr_low == so->addr_low)
-               break;
+             if (filename_cmp (objfile_name (objfile), so->so_name) == 0
+                 && objfile->addr_low == so->addr_low)
+               {
+                 so->objfile = objfile;
+                 break;
+               }
            }
          if (so->objfile == NULL)
            {
@@ -696,13 +701,12 @@ solib_read_symbols (struct so_list *so, symfile_add_flags flags)
 
          so->symbols_loaded = 1;
        }
-      CATCH (e, RETURN_MASK_ERROR)
+      catch (const gdb_exception_error &e)
        {
          exception_fprintf (gdb_stderr, e, _("Error while reading shared"
                                              " library symbols for %s:\n"),
                             so->so_name);
        }
-      END_CATCH
 
       return 1;
     }
@@ -735,7 +739,7 @@ update_solib_list (int from_tty)
 
   /* We can reach here due to changing solib-search-path or the
      sysroot, before having any inferior.  */
-  if (target_has_execution && !ptid_equal (inferior_ptid, null_ptid))
+  if (target_has_execution && inferior_ptid != null_ptid)
     {
       struct inferior *inf = current_inferior ();
 
@@ -744,17 +748,16 @@ update_solib_list (int from_tty)
         symbols now!  */
       if (inf->attach_flag && symfile_objfile == NULL)
        {
-         TRY
+         try
            {
              ops->open_symbol_file_object (from_tty);
            }
-         CATCH (ex, RETURN_MASK_ALL)
+         catch (const gdb_exception &ex)
            {
              exception_fprintf (gdb_stderr, ex,
                                 "Error reading attached "
                                 "process's symbol file.\n");
            }
-         END_CATCH
        }
     }
 
@@ -862,9 +865,9 @@ update_solib_list (int from_tty)
        {
 
          i->pspace = current_program_space;
-         VEC_safe_push (so_list_ptr, current_program_space->added_solibs, i);
+         current_program_space->added_solibs.push_back (i);
 
-         TRY
+         try
            {
              /* Fill in the rest of the `struct so_list' node.  */
              if (!solib_map_sections (i))
@@ -875,13 +878,12 @@ update_solib_list (int from_tty)
                }
            }
 
-         CATCH (e, RETURN_MASK_ERROR)
+         catch (const gdb_exception_error &e)
            {
              exception_fprintf (gdb_stderr, e,
                                 _("Error while mapping shared "
                                   "library sections:\n"));
            }
-         END_CATCH
 
          /* Notify any observer that the shared object has been
             loaded now that we've added it to GDB's tables.  */
@@ -1103,7 +1105,7 @@ info_sharedlibrary_command (const char *pattern, int from_tty)
        else
          uiout->field_string ("syms-read", so->symbols_loaded ? "Yes" : "No");
 
-       uiout->field_string ("name", so->so_name);
+       uiout->field_string ("name", so->so_name, file_name_style.style ());
 
        uiout->text ("\n");
       }
@@ -1295,7 +1297,7 @@ reload_shared_libraries_1 (int from_tty)
 
   for (so = so_list_head; so != NULL; so = so->next)
     {
-      char *found_pathname = NULL;
+      const char *found_pathname = NULL;
       int was_loaded = so->symbols_loaded;
       symfile_add_flags add_flags = SYMFILE_DEFER_BP_RESET;
 
@@ -1329,19 +1331,18 @@ reload_shared_libraries_1 (int from_tty)
        {
          int got_error = 0;
 
-         TRY
+         try
            {
              solib_map_sections (so);
            }
 
-         CATCH (e, RETURN_MASK_ERROR)
+         catch (const gdb_exception_error &e)
            {
              exception_fprintf (gdb_stderr, e,
                                 _("Error while mapping "
                                   "shared library sections:\n"));
              got_error = 1;
            }
-         END_CATCH
 
            if (!got_error
                && (auto_solib_add || was_loaded || libpthread_solib_p (so)))
@@ -1441,21 +1442,6 @@ show_auto_solib_add (struct ui_file *file, int from_tty,
 }
 
 
-/* Handler for library-specific lookup of global symbol NAME in OBJFILE.  Call
-   the library-specific handler if it is installed for the current target.  */
-
-struct block_symbol
-solib_global_lookup (struct objfile *objfile,
-                    const char *name,
-                    const domain_enum domain)
-{
-  const struct target_so_ops *ops = solib_ops (target_gdbarch ());
-
-  if (ops->lookup_lib_global_symbol != NULL)
-    return ops->lookup_lib_global_symbol (objfile, name, domain);
-  return (struct block_symbol) {NULL, NULL};
-}
-
 /* Lookup the value for a specific symbol from dynamic symbol table.  Look
    up symbol from ABFD.  MATCH_SYM is a callback function to determine
    whether to pick up a symbol.  DATA is the input of this callback
@@ -1497,9 +1483,8 @@ gdb_bfd_lookup_symbol_from_symtab (bfd *abfd,
              if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
                  && gdbarch_elf_make_msymbol_special_p (gdbarch))
                {
-                 struct minimal_symbol msym;
+                 struct minimal_symbol msym {};
 
-                 memset (&msym, 0, sizeof (msym));
                  SET_MSYMBOL_VALUE_ADDRESS (&msym, symaddr);
                  gdbarch_elf_make_msymbol_special (gdbarch, sym, &msym);
                  symaddr = MSYMBOL_VALUE_RAW_ADDRESS (&msym);
This page took 0.028376 seconds and 4 git commands to generate.