我需要根據x86機器指令計數(以便稍後可以在某個仿真器/模擬器中運行)估算程序中某個熱點的確切起始位置。有沒有辦法使用gdb來統計正在執行的機器指令的數量?當然還有其他的選擇,我可以使用仿真/二進制儀器工具(如Pin),並在計算指令時跟蹤運行,但這需要在我工作的每個平臺上安裝此工具 - 並非總是可行。我需要幾乎所有Linux機器上都有的工具。使用gdb計算機器指令
對於gdb,我猜測它也可以運行stepi X
作爲某種粗粒度搜索,直到我們到達斷點,然後重複降低分辨率,但這會非常慢。有沒有另一種方法來做到這一點?
GDB完全不適合此目的。使用類似[PAPI](http://icl.cs.utk.edu/papi/)的內容來準確衡量應用程序的執行情況。無論如何,你應該在任何地方都有編輯工具。 –
@mfukar謝謝,但我不確定它像GDB一樣隨處可用。我也不會說GDB是完全不合適的,它似乎是一個非常簡單的功能,因爲它已經知道如何在機器分辨率下進行操作 - 所需的只是跟蹤指令數量。 – Leeor
'在調試器中執行程序會改變對性能(緩存狀態,TLB未命中等)可能至關重要的程序狀態。在調試器中運行程序時得到的結果僅適用於該情況。 –