You are not logged in.
Pages: 1
I have been using callgrind to generate profiling information, and kcachegrind to view it. In order to reduce or eliminate the amount of ???? and hexadecimal procedure names that appear when a function call is made to libraries without debugging symbols, I used the ABS system to recompile glibc with debugging symbols (minus stripping and with -g) (ABS is great by the way! on some other system I would have strongly risked blowing up my system)
Recompiling glibc using ABS made the output of kcachegrind far more informative (and interesting) although I still do get a number of purely hexadecimal procedure calls--more specifically, the top two rectangles in the callgraph, which happen some time before main(). When I tried to get the source code for these, I was notified that the procedure at the top belongs to the ld-2.12.1.so file, which, surprisingly, belongs to glibc. So, either (a) I made a mistake when recompiling glibc, such that not all debugging symbols were included, or (b) it is not possible to get profiling information for procedures called too much before main(), or (c) there is something other than glibc that I need to recompile with debugging symbols.
I wonder if anyone knows what the right answer is, or how my dilemma can be resolved. Thank you.
Last edited by dillesca (2010-12-01 01:13:19)
---Lenovo T510--Intel(R) Core(TM) i7 CPU M620@2.67GHz---x86_64---4GB RAM---NVIDIA NVS 3100---
---320GB Seagate Momentus 7200.4 Series Hard Drive---
----xfce4---2.6.36-ARCH---
Offline
The first function executed in ld.so is called _start. The function below it is also _start(), but from your program instead. In your program, _start() is linked in by crt0.o; in ld.so, it may be hand-written, I'm not sure. _start() is written in assembly AFAIK, so it's unlikely that you'll be able to produce debugging information for it.
Offline
Pages: 1