This is the mail archive of the gdb@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]

Re: Loading shared libraries for core file


Ben Hutchings wrote:

Kris Warkentin wrote:


Ben Hutchings wrote:


Kris Warkentin wrote:


'info shared' should tell you what it plans to load and whether or


not


it has yet.


Unfortunately not:
"No shared libraries loaded at this time."



Strange. Is it possible that your application cored before it loaded the shared libs? Linux uses lazy linking so if none of your objects


had


been used yet, they might not be loaded.



The process had been running for a while and to get to that point it would have had to run code from all the libraries. It was actually running code from a shared library at the point I made the core dump. Now gdb won't show me that code!


<snip>


What do you get when you 'objdump -x <your_app> | grep NEEDED'?



NEEDED libboost_thread.so NEEDED libdl.so.2 NEEDED libstdc++.so.6 NEEDED libm.so.6 NEEDED libgcc_s.so.1 NEEDED libpthread.so.0 NEEDED libc.so.6 NEEDED ld-linux.so.2



Also, you might want to try "LD_DEBUG=all LD_DEBUG_OUTPUT=ld_debug.txt





<your_app>" to see what's going on.



It's fairly clear that all the libraries are loaded successfully.



What happens if you run the app in gdb? Can you see the shared libs then? Perhaps there is something wrong with the core file. If you look at usr/include/link.h, you'll see how this all works. The runtime linker fills in a list of r_debug structures containing all the solibs. This information should be in the core file. If you can see the solibs when you just run it in gdb but not in the core-file, perhaps something is going on there.


cheers,

Kris


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