mul*_*ead 5 linux debugging forensics
首先,简要描述一下情况:一台计算机隐藏在某种画廊的显示器附近,充当一件作品的无声主力。尽管程序员的本意是最好的,但根据路人与显示器的互动,该作品可能会时不时地崩溃。由于正常运行时间(或类似的东西)非常宝贵,程序员已经安装了计算机以使用 bash 循环黑客式地自动重新启动相关程序。
开发人员很想确定任何崩溃的原因是什么,但是通过 GDB 运行程序——据开发人员所知——会导致进程在崩溃时停止。这确实使开发人员能够利用“回溯”并找到原因,但是在开发人员前往相关画廊进行检查之前,该作品将无法操作。这不好。
这个勇敢的开发人员如何通过 GDB 保护每次崩溃的回溯(并可能将它们存储在某个地方),但仍然允许在崩溃时自动重新启动进程的原始行为?
ulimit -c 1073741824在启动程序之前运行。下次程序崩溃时,将在工作目录(名为core.<PID>)中创建核心转储。然后,您可以随时使用 GDB 打开这个核心。
ulimit -c XXXXX设置程序段出错时创建的核心转储文件的最大大小。默认情况下,这0意味着不转储核心。
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |