GDB调试 和 coredump文件

1、GDB调试

https://blog.csdn.net/21cnbao/article/details/7385161#commentBox

https://www.cnblogs.com/lsgxeva/p/8078670.html

2、coredump 查看程序异常崩溃时的状态

2.1开启coredump:     

             查看命令:【ulimit -c 】 查看当前终端是否开启   【输出0 未开启  ; 输出unlimited 已开启】

             开启命令:【ulimit -c  unlimited】  or   【ulimit -c  200】。设置core文件的大小

             永久开启:修改配置文件 /etc/security/limits.conf

开启后,程序运行崩溃,在当前文件夹会出现core文件,保存了崩溃时的内存状态和寄存器状态。core文件也是一种ELF文件,可以使用【readelf命令查看】

2.2配合gdb查看core文件

           命令【gdb ./program  core 】。同时要求program程序GCC编译时使用-g选项 添加调试信息到执行文件。

2.3coredump文件产生的原因:

           1、内存访问越界;2、多线程程序使用了线程不安全的函数;3、多线程读写数据未加保护锁;4、非法指针;5、堆栈溢出。

猜你喜欢

转载自blog.csdn.net/weixin_38812277/article/details/92970089