C 在Linux上分配期间如何记录堆栈?
在OS X上,在运行程序之前设置C 在Linux上分配期间如何记录堆栈?,c,linux,debugging,memory,malloc,C,Linux,Debugging,Memory,Malloc,在OS X上,在运行程序之前设置MallocStackLogging环境变量将导致malloc(3)和free(3)在每次为每个内存区域调用堆栈时记录堆栈。这对于调试内存损坏问题特别有用,因为您可以回顾已损坏区域的历史记录,并找出代码中负责内存的部分 我知道我可以在Linux上使用\uuu malloc\uhook来编写我自己的调试工具实现,但我想知道是否有更简单的方法来完成同样的事情?在Linux上跟踪分配的推荐方法是什么?我从来没有听说过这个功能。如果这是不可能的,但是,您仍然可以将它们包装
MallocStackLogging
环境变量将导致malloc(3)
和free(3)
在每次为每个内存区域调用堆栈时记录堆栈。这对于调试内存损坏问题特别有用,因为您可以回顾已损坏区域的历史记录,并找出代码中负责内存的部分
我知道我可以在Linux上使用
\uuu malloc\uhook
来编写我自己的调试工具实现,但我想知道是否有更简单的方法来完成同样的事情?在Linux上跟踪分配的推荐方法是什么?我从来没有听说过这个功能。如果这是不可能的,但是,您仍然可以将它们包装在一些可以实现这一点的函数中
或考虑内存分析器(空闲后堆用户、内存泄漏、缓冲区溢出等),如ValgRink或AddiSsSabiZiel.