如何在ubuntu下生成coredump文件
一、开始调试信息
一般程序发布为release,而如果需要能够生成coredump就需要开起调试信息,这将会导致生成可执行程序二进制文件,会增大到五六倍以上。
Qt生成调试信息只需要在pro文件中
QMAKE_CC += -g
QMAKE_CXX += -g
QMAKE_LINK += -g
二、设置coredunmp大小
通过ulimit -c 可查看core文件大小,默认为0
将大小设置为不限制
ulimit -c unlimited
如果在命令行中输入,只会在本次命令行中生效,如果希望永久生效,则需要添加到.bashrc或profile文件中。
三、设置coredump文件路径
通过gedit /proc/sys/kernel/core_pattern 查看路径,是否将coredump指向了其他路径,
我们这里将路径修改到临时目录下,
sudo bash -c "echo /tmp/core.%e.%p.%h.%t > /proc/sys/kernel/core_pattern"
注意:这个文件也只是临时修改,一旦系统重启后会被恢复到原路径,如果需要永久生效可以sudo nano /etc/sysctl.conf 打开文件后加入kernel.core_pattern = /tmp/core.%e.%p.%h.%t,最后sudo sysctl -p 来应用修改后的参数。如果不是管理员用户启动需要输入密码,可以放到脚本中
echo -e "1\n" | sudo -S bash -c "echo /tmp/core.%e.%p.%h.%t > /proc/sys/kernel/core_pattern"
四、总结
工作不方便修改电脑可以将这些都写入到一个sh文件中,修改core大小,设置core路径后,然后启动需要的应用程序,每次启动都通过这个sh脚本启动即可。