我正在尝试在Linux amd64上使用gdb来调查C/C++堆的状态,有没有一种好的方法可以做到这一点?
我尝试的一种方法是“调用mallinfo()”,但不幸的是我不能提取我想要的值,因为gdb无法正确处理返回值。
我不能轻松地编写一个函数编译到我所附加的进程的二进制文件中,因此我可以通过调用自己代码中的mallinfo()实现自己的函数来提取值。也许有一个聪明的技巧可以让我即时完成这个操作吗?
另一个选择可能是定位堆并遍历malloc头/空闲列表;我将感激任何指向我能够开始查找这些位置和布局的指针。
我已经尝试了谷歌搜索和阅读相关问题约2小时,学到了一些有趣的东西,但仍然没有找到我需要的内容。