2015-05-07 67 views
1

我正在使用一個有SDK和一堆開發工具的應用程序,我也使用IDA Pro進行了很多代碼分析,所以我對它很滿意。簡而言之,它是一個遊戲服務器應用程序,所以你可以看到我正在處理的東西:支持mods,所以它有一些記錄在內部的內容,這使得它更容易處理它的裝配。分析沒有源代碼的編譯代碼?

但是,源代碼沒有被釋放,所以我很難將自己的手指放在我想說的「CPU開銷」的源頭上,以便可能使用DLL注入來重寫該部分例如「取代」有問題的代碼,甚至取消它,這取決於它的需要。

我想知道,是否可以剖析一個二進制可執行文件,你無法獲得源代碼?可以在操作碼/彙編級別分析代碼的東西?

謝謝!

+0

這有什麼意義嗎?即使你有很好的調試信息,分析器可以使用,但你仍然沒有辦法讓程序更快。這只是浪費時間。 –

+0

@HansPassant該陳述並非真實 – Yannick

回答

1

傳統的配置文件(如gprof)在編譯時插入了額外的代碼並且在當前情況下不會有所幫助,這是正確的。

也許像Valgrind這樣的工具可以提供幫助。

+0

嗯,我對Valgrind的說法不太瞭解,但我只是偶然發現了關於Callgrind的一篇論文。它是否需要以像gprof這樣的高級時尚編譯代碼,或者它是否可以在編譯代碼中使用? – Yannick

+0

是Callgrind是Valgrind的一部分。它不需要在編譯時插入額外的代碼,這就是我推薦它的原因。 – user4495048