I am working on Linux environment. I have two 'C' source packages train and test_train.
Now I want to generate a call graph using gprof which shows calling sequence of functions in main program as well as those inside libtrain.so
I am compiling and linking both packages with -pg option and debugging level is o0. After I do ./train-test , gmon.out is generated. Then I do:
$ gprof -q ./train-test gmon.out
Here, output shows call graph of functions in train-test but not in libtrain.so
What could be the problem ?
gprof
won't work, you need to use sprof
instead. I found these links helpful:
Summary from the 2nd link:
I found that in step 2, it needs to be an existing directory -- otherwise you get a helpful warning. And in step 3, you might need to specify the library as libmylib.so.X
(maybe even .X.Y
, not sure) -- otherwise you get no warning whatsoever.