2011-04-18 70 views
5

我想將我編譯的目標代碼連接到C++代碼,然後檢查是否執行了某行代碼。 如何做到這兩件事?如何編寫簡單的調試器?

如果解釋不是簡單的(我敢打賭它不是),至少有人能指出一些網頁解釋如何做到這一點?

據我所知,該解決方案是針對不同平臺的不同,但我感興趣的是如何在Windows和Linux(Linux的啓動)完成

+4

爲什麼不直接使用現有的調試器? – Erik 2011-04-18 11:19:39

+0

@Erik我知道調試器非常複雜,我不想創建一個。我只想收集有關如何檢查在執行過程中執行哪些方法/函數以及執行多少次的信息。 – 2011-04-18 12:05:59

+0

「編譯目標代碼」是什麼?根據你的控制級別,它可能就像在你想知道的代碼行之前/之後添加printf()語句一樣簡單。或者,您可能想要了解如何覆蓋您選擇的平臺上的功能(有時稱爲混搭)。在很多平臺上,你可以用你自己的函數替換鏈接器表中的函數的條目,做你的printf,然後把它叫做原文。在最壞的情況下,您也可以用跳轉指令替換函數的第一條機器指令。 – uliwitness 2015-11-28 13:50:41

回答

0

在你的評論說:「我只是想收集關於如何執行過程中檢查哪些方法/執行功能的信息,以及有多少次」。

如果這是您想要實現的目標,那麼使用諸如gprof的分析器。

用-g -pg編譯你的程序,當你的程序結束時它會創建一個可以由gprof處理的文件來顯示你想要的內容。

+0

沒錯,但我想從我的應用程序中完成 - 無需編譯庫或帶有其他選項的程序(-pg爲gcc)。 – 2011-04-18 13:09:25

相關問題