This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH]: gdb/769 - segv fault on "info shared" on GDB 5.2.1 HPUX64 11.00


For platforms that aren't covered by the gdb/solib-foo.c files and the gdbarch
platform dependancy files the "info sharedlibrary" command will cause a 
segmentation fault by dereferencing a NULL pointer (current_target_so_ops) in 
gdb/solib.c:update_solib_list.  The patch checks if current_target_so_ops is 
NULL, and if so it responds with a "command not implemented" message.

What I really wanted to do was to implement support for HPUX 11.00 64-bit w/GCC. 
It shouldn't be too difficult as 64-bit GCC in HPUX 11.00 uses GNU ld and the 
"standard" elf64hppa object format. Unfortunately I had no idea how to proceed 
or where to find the neccesary information, thus I stuck with this "band-aid" 
patch.

What follows is a diff -up patch for gdb-5.2.1/gdb/solib.c

 - Josh Martin

 
--- solib.c~	Tue Feb 26 18:40:35 2002
+++ solib.c	Sat Sep 28 08:43:03 2002
@@ -619,6 +619,19 @@ info_sharedlibrary_command (char *ignore
   int addr_width;
   char *addr_fmt;
 
+  /*
+    This is usually defined in a platform specific solib-foo.c/.h
+    file.  Eventually the definition should be migrated to the
+    gdbarch files.  In the mean time keep this from core dumping on
+    platforms where there is no implementation.
+  */
+  if (current_target_so_ops == NULL)
+    {
+      printf_unfiltered("Shared library info is not yet implemented on this "
+			"platform\n");
+      return;
+    }
+
   if (TARGET_PTR_BIT == 32)
     {
       addr_width = 8 + 4;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]