是否可以使用valgrind獲取有關程序運行指令配置文件的信息。按指令配置文件,我的意思是分解爲每種類型指令的指令數量。例如:'n1'MOV,'n2'CALL等。如果沒有其他工具可以做到這一點?使用Valgrind獲取指令配置文件
2
A
回答
2
我覺得,valgrind沒有這個任務的準備工具。您可以嘗試編寫一些腳本來獲取此類信息,或者使用GUI手動獲取基本數據。
有callgrind
工具Valgrind的個人資料的程序執行:
valgrind --tool=callgrind [callgrind-options] ./your-program
(檢查http://valgrind.org/docs/manual/cl-manual.html)
有了它,你可以得到每條指令的執行次數(Ir
事件)和總的準確數據簡介執行指令的數量,但不會有關於n1 MOVs,n2 CALLs等的彙總信息。
使用--dump-instr=yes
callgrind選項將會有精確的e數據每條機器指令的執行次數;這個數據可以在「彙編器」選項卡中用kcachegrind
GUI查看。不知道callgrind_annotate
是否會解析這樣的文件並顯示帶註釋的反彙編,但是可以通過一些perl/python腳本解析callgrind.out.$pid
callgrind的輸出(該文件是基於文本的 - http://valgrind.org/docs/manual/cl-format.html - 將會有十六進制地址和偏移量根據「 3.1.6。分層壓縮「)。您將得到每個地址的機器指令和執行計數的地址,因此腳本可能會將計數與反彙編結合起來。 (其他方法是切換到perf
或oprofile
等不精確的分析器,以獲得與文本相同的帶註釋的反彙編,並通過自定義腳本進行解析。結果將與valgrind不完全一樣,但更容易獲得計數以文本形式)
PS命令:我覺得寫劇本比增加幾個櫃檯每個指令類型黑客的valgrind的插件(callgrind
)更容易。這仍然是可能的,但是更困難,並且會比原來的callgrind多幾倍。
相關問題
- 1. 使用配置文件ID獲取Facebook配置文件名
- 2. 獲取配置文件FCM
- 3. 爲MPICH配置的valgrind:錯誤libmpi * .so文件使用
- 4. 我怎樣才能使用valgrind的內存配置文件
- 5. 使用命令和指定配置文件啓動Tmux
- 6. LexikJWT通過令牌獲取用戶配置文件
- 7. 使用QT設置獲取配置文件設置
- 8. 獲取用戶密碼配置文件
- 9. 如何使用QMake文件獲取Valgrind的調試符號
- 10. 如何使用訪問令牌在linkedin中獲取用戶配置文件
- 11. 使用OAuth2獲取node.js中的刷新令牌和gmail用戶配置文件
- 12. Valgrind:獲取內存訪問,執行週期和指令的命令
- 13. 獲取文件指針的位置
- 14. 使用ptrace獲取機器指令
- 15. 使用Oauth 2.0從LinkedIn獲取用戶配置文件API
- 16. 使用Twitterizer獲取經過認證的用戶配置文件?
- 17. 使用google oauth2獲取用戶配置文件
- 18. 使用java讀取linux配置文件
- 19. 使用AppSetting讀取配置文件
- 20. 使用LINQ to讀取配置文件
- 21. 如何獲取屬性設置指令?
- 22. windows命令配置文件?
- 23. 如何從Azure配置文件獲取所有配置設置?
- 24. 無法獲取GCM配置文件
- 25. Facebook SDK FQL:獲取配置文件URL?
- 26. 如何獲取ios配置文件?
- 27. 獲取完整的UserProfile配置文件
- 28. 獲取配置文件問題
- 29. 獲取配置文件狀態
- 30. Umbraco - 獲取配置文件目錄