title: Need to load debugging symbols for shared library in GDB
body: <p>I am using GDB to debug a program that uses libpthread. There is an error 
  happening in pthread_create and need to step into that function. Unfortunately when I am debugging my program, it does not load the shared library symbols properly so I can't step over the source code and examine program behaviour meaningfully.. This is the output as soon as I start gdb.</p>
  
  <pre><code>Remote debugging using 127.0.0.1:21293
  warning: limiting remote suggested packet size (206696 bytes) to 16384
  Failed to read a valid object file image from memory.
  </code></pre>
  
  <p>So I believe the last message is related to the failure to read debugging symbols. This is despite having the libc6-dbg package installed. This is the truncated output of "where" at a point just before a SIGSEGV is encountered (in pthread_create, the function I want to examine in the debugger)</p>
  
  <pre><code>#0  0x68200ce2 in ?? ()
  #1  0x68403cbf in ?? ()
  #2  0x687571b0 in ?? ()
  #3  0x6874c638 in ?? ()
  #4  0x68867a72 in ?? ()
  ....
  </code></pre>
  
  <p>The process' /proc/.../maps shows where libpthread is mapped into memory.</p>
  
  <pre><code>683f8000-68410000 r-xp 00000000 08:01 3017052                            /lib/i386-linux-gnu/i686/cmov/libpthread-2.19.so
  68410000-68411000 r--p 00017000 08:01 3017052                            /lib/i386-linux-gnu/i686/cmov/libpthread-2.19.so
  68411000-68412000 rw-p 00018000 08:01 3017052                            /lib/i386-linux-gnu/i686/cmov/libpthread-2.19.so
  </code></pre>
  
  <p>I believe that if I could only manually load the debugging symbols into gdb, then I will be able to step over the source code and find the source of my memory error. However I am unsure about how to do this. </p>
  
  <p>I am debugging a 32 bit program on x86_64 Debian. What should I do to load libpthread symbols into GDB so that I can debug it meaningfully?</p>