gdb导入崩溃/退出时的进程转储?

时间:2012-01-09 13:34:03

标签: c++ linux gdb crash-dumps

我有C ++软件(服务器)及其崩溃,我不确切知道 问题基于日志。我想在linux之后制作一些东西 崩溃或退出这个过程的转储,我将导入这个 将文件发送到gdb并分析正在做的事情。

过去有人做过什么吗? 有人可以帮我提一些信息的想法吗?

谢谢!

3 个答案:

答案 0 :(得分:5)

您想要的是一个常规的核心转储,它可以与GDB一起查找崩溃位置。 有关信息,请参阅http://linux.die.net/man/5/core

如果守护程序没有当前目录所在的写入权限,则不会生成核心。要重定向,请尝试;

mkdir /tmp/corefiles 
chmod 777 /tmp/corefiles 
echo "/tmp/corefiles/core" > /proc/sys/kernel/core_pattern 

答案 1 :(得分:1)

您在寻找核心档案吗?在启动守护程序的脚本中,添加此命令(假设脚本的解释器为bash):

ulimit -c unlimited

将核心文件的最大大小设置为“无限制”(默认情况下通常为0)。

答案 2 :(得分:1)

正如其他人回答的那样,您可以获得核心转储文件。请务必正确配置您的环境。

另一种方法是,一旦守护程序已经运行并且在它崩溃之前,它将通过调试器attach

您还可以使用gdb --args / path / to / daemon 守护程序参数启动您的守护程序......