一千萬個為什麽

搜索

檢測C中的所有內存更改

有沒有辦法可以通過特定的代碼片段(函數或代碼行)找出所有內存更改,而不事先知道我期望更改的位置(我想觀察整個程序的內存空間)?在gdb中觀看需要我知道我期待的變化......

最佳答案

如果您可以在Linux或Mac OS上運行想要探測的軟件,我建議您查看 Valgrind ,特別是Valgrind的Memcheck工具。

簡而言之,Valgrind在“合成CPU”上運行您的程序。它不直接在真實硬件上執行程序代碼。因此,它能夠檢測程序所做的一切。 Memcheck工具能夠監視程序的所有內存訪問。它可以幫助查找各種類型的內存錯誤。驚人的工作。

轉載註明原文: 檢測C中的所有內存更改