c++ - Linux - 有时只会出现段错误 - 如何调试

标签 c++ c linux segmentation-fault

我有一个 Linux 程序,有时会以段错误结束。该程序每小时定期运行,但段错误只是偶尔发生。

我调试这个有问题,因为如果我用相同的输入再次运行程序,没有错误报告,一切正常。

有没有办法,如何“报告”在代码的哪一部分发生错误或导致问题的原因?

最佳答案

通常的方法是让崩溃的程序生成一个核心文件,并在崩溃后对其进行分析。确保:

  • 通过调用 ulimit -c unlimited 最大核心文件大小足够大(即无限制)在 shell 中,启动进程。
  • cwd 可由段错误进程写入。

然后你可以分析文件

gdb <exe> <corefile>

关于c++ - Linux - 有时只会出现段错误 - 如何调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41238620/

相关文章:

python - os.system() 在哪个 linux shell 下执行命令?

php - 在 Ubuntu 16.04 Xenial 和 apache 上安装 php 5.3 或 5.4

c++ - 如何在一个 SQL 查询中更新和选择

c++ - 如何从子成员函数修改父公共(public)成员变量?

c++ - 无法修改其他线程中 ref 传递的值

c++ - 如何在 Windows 中以编程方式查找动态加载的模块(静态模块)

c - pthread_mutex_lock 等待锁定高度满足的互斥体正好 60 秒(如果互斥体无法立即锁定)

c - 查找介于100和999之间的阿姆斯壮数字

c - 无锁算法的指针对齐

c++ - Cocos2d-x collision hold back 一个节点