Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在Linux上分配期间如何记录堆栈?_C_Linux_Debugging_Memory_Malloc - Fatal编程技术网

C 在Linux上分配期间如何记录堆栈?

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

在OS X上,在运行程序之前设置
MallocStackLogging
环境变量将导致
malloc(3)
free(3)
在每次为每个内存区域调用堆栈时记录堆栈。这对于调试内存损坏问题特别有用,因为您可以回顾已损坏区域的历史记录,并找出代码中负责内存的部分


我知道我可以在Linux上使用
\uuu malloc\uhook
来编写我自己的调试工具实现,但我想知道是否有更简单的方法来完成同样的事情?在Linux上跟踪分配的推荐方法是什么?

我从来没有听说过这个功能。如果这是不可能的,但是,您仍然可以将它们包装在一些可以实现这一点的函数中

或考虑内存分析器(空闲后堆用户、内存泄漏、缓冲区溢出等),如ValgRink或AddiSsSabiZiel.