gpt4 book ai didi

c - 如何跟踪对堆上分配的内存块所做的更改

转载 作者:行者123 更新时间:2023-11-30 17:29:07 25 4
gpt4 key购买 nike

我有一个多线程程序(使用 ucontext 例程),其中我使用 malloc() 为子线程分配了堆栈。每当我尝试释放为该线程分配的内存(核心转储)时,就会出现实际问题。
我怀疑特定线程的内存块正在被其他线程的堆栈增长损坏,或者另一方面,它可能是代码中的逻辑错误。为了验证这一点,我想跟踪对内存块所做的更改,以便我可以 100% 确定我的假设。
使用 mtrace,我无法实现我想要的。
有什么建议吗?

最佳答案

使用Valgrind ..
它是一个用于跟踪正在运行的程序的专业工具,专门用于跟踪堆分配、线程变量和跟踪子进程..

如果我理解你的问题,那么--verbose--check-stack-vars--read-var-info 选项将对您特别有帮助..

关于c - 如何跟踪对堆上分配的内存块所做的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25777247/

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