C/C++教程

Enable coredump 调试程序

本文主要是介绍Enable coredump 调试程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 打开内核 coredump 功能

sudo systemctl stop apport.service
sudo systemctl disable apport.service
sudo echo 'kernel.core_pattern=/var/crash/%e.%t.%s' >> /etc/sysctl.conf    # /etc/sysctl.conf 可能要改变权限才能读写
sudo echo '* soft core unlimited' >> /etc/security/limits.conf
sudo reboot

2. sudo 运行自己的程序

        注意:如果是使用 service 服务来启动程序,当程序崩溃时是不能将 coredump 文件保存到本地文件的,应该是跟输出定向有关。

3. 使用 gdb 调试 coredump 文件

gdb ./linuxProg linuxProg.1630575379.11

gdb 的调试命令可以查一下,主要有:

(gdb) bt            # 查看堆栈
(gdb) frame 0       # 查看第0帧
(gdb) info threads  # 查看当前帧所有线程
(gdb) p myParam     # 查看变量值
(gdb) thread 1      # 切换线程 1 
(gdb) info r        # 查看寄存器

这篇关于Enable coredump 调试程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!