我有C ++软件(服务器)及其崩溃,我不确切知道
问题基于日志。我想在linux之后制作一些东西
崩溃或退出这个过程的转储,我将导入这个
将文件发送到gdb
并分析正在做的事情。
过去有人做过什么吗? 有人可以帮我提一些信息的想法吗?
谢谢!
答案 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 守护程序参数启动您的守护程序......