home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / gnu / gdb / bug / 1357 < prev    next >
Encoding:
Text File  |  1993-01-08  |  3.3 KB  |  90 lines

  1. Newsgroups: gnu.gdb.bug
  2. Path: sparky!uunet!cs.utexas.edu!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!ras.amdahl.COM!haw30
  3. From: haw30@ras.amdahl.COM (Henry A Worth)
  4. Subject: gdb-4.7 dumps on nil textsection ptr (gcc2.3.3/solaris2/shared object)
  5. Message-ID: <9301080007.AA14662@zeus.ras.amdahl.com>
  6. Sender: gnulists@ai.mit.edu
  7. Organization: GNUs Not Usenet
  8. Distribution: gnu
  9. Date: Fri, 8 Jan 1993 00:07:14 GMT
  10. Approved: bug-gdb@prep.ai.mit.edu
  11. Lines: 77
  12.  
  13.    gdb dumped (seg. excep) while trying to attach to a running process
  14. (shared objects in use). The object included a shared object without a
  15. text section which resulted in a nil ptr in the function symbol_add_stub()
  16. in the gdb source file solib.c. gdb-4.7 and the objects were all compiled
  17. with gcc-2.3.3 running under Solaris2.0.
  18.  
  19.  
  20. gdb of gdb-4.7's core dump (same error also occurs in earlier gdb's):
  21.  
  22.      (gdb) core core
  23.      Core was generated by `gdb-4.7 sm'.
  24.      Program terminated with signal 11, Segmentation fault.
  25.      #0  0x67028 in symbol_add_stub (arg=0x2f5208 "") at solib.c:674
  26.      674       so -> objfile = symbol_file_add (so -> so_name, so -> from_tty,
  27.  
  28. the full statement & function:
  29.  
  30. /* A small stub to get us past the arg-passing pinhole of catch_errors.  */
  31.  
  32. static int
  33. symbol_add_stub (arg)
  34.      char *arg;
  35. {
  36.   register struct so_list *so = (struct so_list *) arg; /* catch_errs bogon */
  37.  
  38.   so -> objfile = symbol_file_add (so -> so_name, so -> from_tty,
  39.                                    (unsigned int) so -> textsection -> addr,
  40. note>>                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
  41.                                    0, 0, 0);
  42.   return (1);
  43. }
  44.  
  45. returning to gdb:
  46.      
  47.      (gdb) p so
  48.      $1 = (struct so_list *) 0x2f5208
  49.      (gdb) p *so
  50.      $2 = {next = 0x0, lm = {l_addr = 4014080000, 
  51.          l_name = 0xef7fa2e4<Address 0xef7fa2e4 out of bounds>, 
  52.          l_ld = 0xef434494, 
  53.          l_next = 0xef7fa3dc, l_prev = 0xef7fa254}, lmaddr = 0xef7fa31c, 
  54.        lmend = 4014163092, 
  55.        so_name = {"/xxxxx/xxxxx/xxxxx/xxxxx/xxxxx/xxx.so", 
  56.  
  57. The source file (name changed to protect the guilty) contains a global 
  58. date table and no functions (same error also occurs if it is a .sa  file). 
  59. It was compiled with gcc-2.3.3 with the options: -g -O2 -fno-inline -fpic.
  60.  
  61.        '\000' <repeats 205 times>}, symbols_loaded = 0 '\000', from_tty = 0 
  62.        '\000', 
  63.        so_bfd = 0x321108, objfile = 0x0, sections = 0x25a908, 
  64.        sections_end = 0x25a928, textsection = 0x0}
  65. note>>                          ^^^^^^^^^^^^^^^^^
  66.      
  67.      (gdb) bt
  68.      #0  0x67028 in symbol_add_stub (arg=0x2f5208 "") at solib.c:674
  69.      #1  0x213c8 in catch_errors (func=0x67008 <_initialize_exec+2120>, 
  70.          args=0x2f5208 "", 
  71.          errstring=0x140140 "Error while reading shared library symbols:\n")
  72.          at main.c:370
  73.      #2  0x67170 in solib_add (arg_string=0x0, from_tty=1, target=0x0)
  74.          at solib.c:728
  75.      #3  0x53904 in attach_command (args=0x18900f "6633", from_tty=1)
  76.          at infcmd.c:1083
  77.      #4  0x226c4 in execute_command (p=0x18900f "6633", from_tty=1) at 
  78.          main.c:931
  79.      #5  0x22928 in command_loop () at main.c:990
  80.      #6  0x22410 in main (argc=2, argv=0xeffff794) at main.c:857
  81.  
  82.  
  83. fix(?)/workaround:
  84.  
  85. Added check of so->textsection, if nil then pass a nil to symbol_file_add() 
  86. for the third argument.
  87.     
  88.  
  89.  
  90.