系统相关
首页 > 系统相关> > linux – 在不停止进程的情况下捕获并记录GDB回溯

linux – 在不停止进程的情况下捕获并记录GDB回溯

作者:互联网

首先,简要描述一下情况:计算机隐藏在某种画廊的显示器附近,充当了作品的静音主力.尽管有程序员的最佳意图,这件作品可能会不时地崩溃,这取决于路人与显示器的交互.程序员已经装配好计算机以使用bash循环自动重启相关程序,因为正常运行时间(或类似的东西)是非常宝贵的.

开发人员希望确定崩溃的原因是什么,但是通过GDB运行程序 – 尽管这是开发人员的知识 – 会导致进程在崩溃时停止.这确实可以让开发人员利用“回溯”找到原因,但是在开发人员前往相关画廊检查它之前,这件作品将无法使用.这不好.

这个勇敢的开发人员如何通过GDB安全地回溯每次崩溃(并且可能将它们存储在某处),但仍然允许在崩溃时自动重启进程的原始行为?

解决方法:

在启动程序之前运行ulimit -c 1073741824.下次程序崩溃时,将在工作目录中创建核心转储(名为core.< PID>).然后,您可以随时使用GDB打开此核心.

ulimit -c XXXXX设置程序seg出错时创建的核心转储文件的最大大小.默认情况下,这是0,这意味着不转储核心.

标签:linux,debugging,forensics
来源: https://codeday.me/bug/20190810/1641186.html