gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 11:13:42 26 4
gpt4 key购买 nike

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

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

最佳答案

我从未听说过该功能。但是,如果不可能,您仍然可以将它们包装在一些可以实现该目的的函数周围。

或者,考虑一个内存分析器(堆用户释放后、内存泄漏、缓冲区溢出等),例如 valgrind 或 AddressSanitizer。

关于c - 在 Linux 上分配期间如何记录堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28178085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com