[置顶] Linux程序宕掉后如何通过gdb查看出错信息
2017-03-02 10:19
393 查看
我们在编写服务端程序的时候,由于多线程并且环境复杂,程序可能在不确定条件的情况下宕掉,还不好重新,这是我们如何获取程序的出错信息,一种方法通过打日志,有时候一些错误日志也不能体现出来,这时就用到我们的core dump文件了。
通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。
1 我们系统一般默认是吧core dump 关掉的,可以通过ulimit -c 查看如果是0就是关闭了,我们可以通过ulimit -c n来打开,你是设置coredump文件的最大值kb,或者直接设置不限制
ulimit –c unlimited
2 设置完毕后我们编写一个出错的程序实验一下
3 编译一下,记得加-g 将调试信息编入执行程序,再运行程序
g++ main.cpp -o main -g
./main
4 使用gdb查看调试信息
gdb main core
通过gdb就可以看到错误的信息了
更多内容可以到网上搜索“夏曹俊”获取我的课程
也可以看我在csdn学院的视频课程
http://edu.csdn.net/course/detail/3738
通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。
1 我们系统一般默认是吧core dump 关掉的,可以通过ulimit -c 查看如果是0就是关闭了,我们可以通过ulimit -c n来打开,你是设置coredump文件的最大值kb,或者直接设置不限制
ulimit –c unlimited
2 设置完毕后我们编写一个出错的程序实验一下
//main.cpp int main() { int *xcj = 0; *xcj = 10; return 0; }
3 编译一下,记得加-g 将调试信息编入执行程序,再运行程序
g++ main.cpp -o main -g
./main
4 使用gdb查看调试信息
gdb main core
通过gdb就可以看到错误的信息了
更多内容可以到网上搜索“夏曹俊”获取我的课程
也可以看我在csdn学院的视频课程
http://edu.csdn.net/course/detail/3738
相关文章推荐
- Linux程序宕掉后如何通过gdb查看出错信息
- linux下打开core功能,以便于通过gdb查看出错堆栈信息
- 在Linux系统下,如果程序中出现segment fault,如何可以让系统产生core dump文件?如何用gdb来跟踪出错的地方?
- 如何通过终端查看 linux 的系统信息
- 如何通过终端命令查看 linux 的系统信息
- Linux 如何使用gdb 查看core堆栈信息
- linux系统中如何通过程序来获知系统信息
- Linux 如何使用gdb 查看core堆栈信息
- Linux 如何使用gdb 查看core堆栈信息
- Linux下如何查看CPU信息, 包括位数和多核信息
- 在Linux操作系统下如何正确查看Raid信息
- 如何通过putty的ssh在windows上使用linux的Xwindows-GUI程序 zz
- Linux下如何查看CPU信息, 包括位数和多核信息
- 如何查看linux发行版版本信息
- QQ是如何防止其它程序通过安装键盘钩子截获密码信息的猜想之一
- AIX和Linux下如何查看CPU和内存信息
- Linux下如何查看CPU信息, 包括位数和多核信息
- 在linux下如何查看硬件信息
- linux如何查看系统信息
- 如何查看Linux 硬件配置信息