我有一个 Linux 程序,有时会以段错误结束。该程序每小时定期运行,但段错误只是偶尔发生。
我调试这个有问题,因为如果我用相同的输入再次运行程序,没有错误报告,一切正常。
有没有办法,如何“报告”在代码的哪一部分发生错误或导致问题的原因?
最佳答案
通常的方法是让崩溃的程序生成一个核心文件,并在崩溃后对其进行分析。确保:
- 通过调用
ulimit -c unlimited
最大核心文件大小足够大(即无限制)在 shell 中,启动进程。 - cwd 可由段错误进程写入。
然后你可以分析文件
gdb <exe> <corefile>
关于c++ - Linux - 有时只会出现段错误 - 如何调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41238620/