gpt4 book ai didi

我可以知道哪个线程从核心转储文件中更改了全局变量的值吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:06 26 4
gpt4 key购买 nike

我的程序是一个用C 编写的多线程程序,运行在Solaris 上。

现在,一个变量(分配在堆中)有时会从有效值更改为 NULL,因此在访问它时,会发生核心转储。

我知道的方法都试过了:使用libumem,添加日志,代码走查,什么都找不到。

所以当我再次分析核心转储文件时,我有了一个绝妙的想法:我能知道哪个线程从核心转储文件中更改了全局变量(包括从堆中分配的)的值吗?任何人都可以从核心转储文件中提供一些线索吗?

最佳答案

Can I know which thread change the global variable (including malloced from heap)'s value from core dump file?

没有。

核心转储记录崩溃点进程内存的当前状态,而不是它的历史。就像看墙上喷漆涂鸦的照片你无法分辨是谁画的一样,在核心转储中查看 NULL 也不会告诉你是谁把它放在那里的。

关于我可以知道哪个线程从核心转储文件中更改了全局变量的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21643736/

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