我想調查在Linux上amd64 gdb內的C/C++堆的狀態,有沒有一種很好的方式來做到這一點?檢查C/C++在gdb堆內存統計信息
我試過的一種方法是「調用mallinfo()」,但不幸的是我不能提取我想要的值,因爲gdb沒有正確處理返回值。
我不是很容易編寫一個函數來編譯到我附加到的進程的二進制文件中,所以我可以簡單地實現我自己的函數,通過在我自己的代碼中調用mallinfo()來提取值辦法。是否有一個聰明的把戲可以讓我在飛行中做到這一點?
另一種選擇可能是找到堆並遍歷malloc頭文件/空閒列表;我很感激任何可以開始尋找這些位置和佈局的指針。
我一直在試圖谷歌和約2小時左右的問題,並瞭解了一些有趣的東西,但仍然沒有找到我所需要的東西。
你需要了解什麼狀態?你需要知道什麼樣的統計數據? – 2010-04-02 02:46:36
堆的大小,使用量和免費量是一個很好的開始 – 2010-04-02 04:04:26
什麼是gdb沒有正確地執行? – leedm777 2010-04-02 23:52:23