MacOS malloc调试日志在进程退出

时间:2017-01-21 19:44:45

标签: c++ macos debugging malloc

我一直在阅读Apple关于用户态调试的规范性文章TN2124,尝试使用(自编).dylib作为插件加载来调试崩溃问题没有调试符号的专有主二进制文件TeamSpeak 3

我了解到,如果您将环境变量MallocStackLoggingNoCompact设置为1malloc()free(),并且有很多关于内存分配的其他详细信息会快速发送到成长"堆栈日志"文件。

然而,似乎只要进程退出,MacOS 就会删除堆栈日志文件,这意味着它对调试crasher错误完全没用(当你怀疑它可能时由双重自由引起,但你不确定)。

例如:sh(4072,0x7fffb9d323c0) malloc: stack logs deleted from /Users/me/Documents/stack-logs.4072.10f244000.sh.ylfxwm.index在进程崩溃(退出)的瞬间被打印到stderr。如果进程正常退出,也会发生这种情况。

如果已删除,我无法使用它。如何在进程退出时阻止MacOS删除日志文件?

0 个答案:

没有答案