GDB enters the Dynamic Linker (ld.so) code
As long as I use it in my normal
C code, I want to get into ld.so’s code.
I’m trying to see the pattern of source code and assemblies through the code flow in GDB TUI can see the source code and assemblies across the code.
To do this, I also installed the
binutils-source package from the ubuntu package manager.
GDB can find debug symbols for ld.so itself, and I can go to the directive level using
si, but I can’t go to the source level because GDB is not able to find the source code for
ld.so and display
NO Source Available.
How can I get GDB to find the
source code for ld.so so I can also see which line of
the ld.so source code is actually executing.
Ubuntu 12.10 64-bit and
If you have the source
code for libc available, you can use
dir to add the source to the source path of gdb. Command: Source_Path
EDIT: To debug libc related files (in an Ubuntu distribution), you need:
- Obtain debugging information for libc by installing the libc6-dbg package.
- code for libc by enabling the source repository (by running
software-sourcesand checking “Enable source repository”) and running
apt-get source libc6
- Add debugging information for libc to LD_LIBRARY_PATH: export LD_LIBRARY_PATH=/usr/lib/debug or
LD_LIBRARY_PATH=/usr/lib/debug gdb <application>
- Add the full path of the C file to the source path of gdb, i.e.:
Get the source