Constify solib_name_from_address
authorTom Tromey <tromey@adacore.com>
Mon, 6 Jun 2022 15:56:30 +0000 (09:56 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 7 Jun 2022 13:21:26 +0000 (07:21 -0600)
I noticed that solib_name_from_address returned a non-const string,
but it's more appropriate to return const.  This patch implements
this.  Tested by rebuilding.

gdb/python/py-progspace.c
gdb/solib.c
gdb/solib.h
gdb/stack.c

index 5657ef7756c9fdea143774b64fc3c7570432b636..a9abfb4c777487377d6b07d060a881a0db6f07c7 100644 (file)
@@ -351,7 +351,6 @@ pspy_get_objfiles (PyObject *self_, PyObject *args)
 static PyObject *
 pspy_solib_name (PyObject *o, PyObject *args)
 {
-  char *soname;
   gdb_py_ulongest pc;
   pspace_object *self = (pspace_object *) o;
 
@@ -360,7 +359,7 @@ pspy_solib_name (PyObject *o, PyObject *args)
   if (!PyArg_ParseTuple (args, GDB_PY_LLU_ARG, &pc))
     return NULL;
 
-  soname = solib_name_from_address (self->pspace, pc);
+  const char *soname = solib_name_from_address (self->pspace, pc);
   if (soname == nullptr)
     Py_RETURN_NONE;
   return host_string_to_python_string (soname).release ();
index 0fbf5bc988ddfddc4dea9dc5e01db1b0a602e531..7d4734b00127ec1d37fa98fa92074aa0f070f294 100644 (file)
@@ -1225,7 +1225,7 @@ solib_contains_address_p (const struct so_list *const solib,
    breakpoints which are in shared libraries that are not currently
    mapped in.  */
 
-char *
+const char *
 solib_name_from_address (struct program_space *pspace, CORE_ADDR address)
 {
   struct so_list *so = NULL;
index f9b4d3566d7171b475553afd6f345fd2c8097b78..251028472c0251525fccbb92237e01b29948509b 100644 (file)
@@ -48,7 +48,7 @@ extern void solib_create_inferior_hook (int from_tty);
 
 /* If ADDR lies in a shared library, return its name.  */
 
-extern char *solib_name_from_address (struct program_space *, CORE_ADDR);
+extern const char *solib_name_from_address (struct program_space *, CORE_ADDR);
 
 /* Return true if ADDR lies within SOLIB.  */
 
index 71d85985d18c0706f221c04b4e146f286996329d..80801ccdb01251f0e11c131a700ddcbbb1b56a13 100644 (file)
@@ -1427,8 +1427,9 @@ print_frame (const frame_print_options &fp_opts,
     if (print_what != SHORT_LOCATION
        && pc_p && (funname == NULL || sal.symtab == NULL))
       {
-       char *lib = solib_name_from_address (get_frame_program_space (frame),
-                                            get_frame_pc (frame));
+       const char *lib
+         = solib_name_from_address (get_frame_program_space (frame),
+                                    get_frame_pc (frame));
 
        if (lib)
          {