2010-05-30 54 views
5

我試圖在GNU/Linux上進行實時音頻處理的共享庫,因此性能很重要。我運行另一個程序,將其掛接到我的系統的音頻輸入和輸出,並使用callgrind進行配置文件。如何讓callgrind轉儲源代碼行信息?

看着KCacheGrind中的結果,我得到了關於什麼函數佔用了我大部分時間的很好的信息。但是,它不會讓我查看逐行信息,而是說我需要使用調試符號進行編譯並再次運行分析。

我正在分析的程序不是用調試符號編譯的,而是庫。我知道這一點,因爲有趣的是,cachegrind的源代碼註釋工作正常。

當我運行callgrind時,它表示默認是轉儲源代碼行信息,但它只是沒有這樣做。有什麼方法可以強制它,或者找出阻礙它的方法?

+7

可能是一個愚蠢的問題,但你可以用調試符號重新編譯你的應用程序嗎? – 2010-05-30 05:39:51

回答

0

是否使用--dump-instr=yes --trace-jump=yes得到指令級的信息?

+0

我沒有使用這些選項,但再次運行它這些選項,我仍然無法讓它顯示源代碼行。 – 2010-06-25 19:44:06

+2

這些選項顯示彙編指令級別,而不是C/C++源級別。 – jluzwick 2013-05-23 16:34:33

相關問題