我試圖用sprof來分析幾乎所有代碼都在共享庫中的軟件(ossim)。我已經生成的文件的分析,但是當我運行sprof,我得到以下錯誤:什麼引起sprof抱怨「由ld.so檢測到不一致」?
> sprof /home/eca7215/usr/lib/libossim.so.1 libossim.so.1.profile -p > log
Inconsistency detected by ld.so: dl-open.c: 612: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!
我下面說的是我需要的libc版本至少2.5-34的指示,我的libc版本2.12。 2(Gentoo,內核2.6.36-r5)。
對於錯誤意味着什麼或者(更有意思)如何解決它,我找不到任何解釋,只有一半相關的谷歌結果是針對舊版Skype中的錯誤。
據我所知,這是一個glibc中的錯誤,它顯示瞭如果你谷歌RT_CONSISTENT,並看看所有的紅帽bugzilla條目。我現在正在使用oprofile。 – MattSmith 2011-10-05 05:10:29
不知道,如果它的工作原理,但在這個答案中有一些關於.so文件sprof用法的信息:http://stackoverflow.com/questions/1838989/gprof-how-to-generate-call-graph-for-functions- in-shared-library-that-linke – 2015-08-02 05:02:42