我正在通過以下方式「PERF」:調用堆棧
perf record -a --call-graph -p some_pid
perf report --call-graph --stdio
然後,我看到:
1.60% my_binary my_binary [.] my_func
|
--- my_func
|
|--71.10%-- (nil)
| (nil)
|
--28.90%-- 0x17f310000000a
我看不出哪些函數調用my_func,並將()。我會看到「無」和「0x17f310000000a」。難道我做錯了什麼?這可能不是調試信息問題,因爲有些符號會顯示,而其他符號則不會顯示。
更多信息:
- 我捉迷藏的CentOS 6.2(內核2.6.32-220.4.1)。
- perf rpm - perf-2.6.32-279.5.2.el6.x86_64。
沒有嘗試縮放。我希望能夠免費使用perf。請縮放解決這個問題?從Zoom縮放使用perf是否容易?它在任何地方解釋過? – erezz
對於最近的Linux發行版(內核2.6.38或更高版本),縮放將默認使用perf。如果你在2.6.32和2.6.37之間,你可能必須從pref頁面手動選擇perf驅動程序。我創建了自定義配置文件配置來訪問性能監視器事件,但聽起來你不需要做任何事情。定期的時間檔案應該爲你提供你正在尋找的callstack和符號數據。 – federal
你的內核模塊不能正常卸載。 \ [edit]對於那些從這篇文章嘗試縮放並且無法卸載rrnotify的用戶,請首先卸載/ dev/rrnotify。 \ [edit]此外,如果您在非英語系統上運行,請在運行縮放前導出LC_ALL = C;縮放無法正確處理非英文數字格式。 – FeepingCreature