调试利器:用GDB查看core dump
来源:互联网 发布:传说中的124分钟知乎 编辑:程序博客网 时间:2024/06/07 15:23
. 前言:
有的程序可以通过编译, 但在运行时会出现Segment fault(段错误).这通常都是指针错误引起的.
但这不像编译错误一样会提示到文件->行,而是没有任何信息, 使得我们的调试变得困难起来.
2. gdb:
有一种办法是, 我们用gdb的step,一步一步寻找.
这放在短小的代码中是可行的, 但要让你step一个上万行的代码,我想你会从此厌恶程序员这个名字, 而把他叫做调试员.
我们还有更好的办法, 这就是core file.
3. ulimit:
如果想让系统在信号中断造成的错误时产生core文件,我们需要在shell中按如下设置:
#设置core大小为无限
ulimit -c unlimited
#设置文件大小为无限
ulimit unlimited
这些需要有root权限,在ubuntu下每次重新打开中断都需要重新输入上面的第一条命令,来设置core大小为无限.
4. 用gdb查看core文件:
下面我们可以在发生运行时信号引起的错误时发生coredump了.
发生core dump之后,用gdb进行查看core文件的内容,以定位文件中引发core dump的行.
gdb [exec file] [core file]
如:
gdb ./test test.core
在进入gdb后,用bt命令查看backtrace以检查发生程序运行到哪里,来定位core dump的文件->行.
5. 用gdb实时观察某进程crash信息
启动进程
gdb -p PID
c
运行进程至crash
gdb会显示crash信息
bt
0 0
- 调试利器:用GDB查看core dump
- 用GDB查看core dump
- 用gdb调试core dump文件
- 用gdb调试core dump文件
- 用gdb调试core dump文件
- 用gdb调试core dump文件
- 用gdb调试core dump文件
- 用gdb调试core dump文件
- 用gdb调试core dump文件
- 用gdb调试core dump文件
- 用GDB调试core dump文件
- 用gdb调试core dump文件
- 用gdb调试core dump文件
- gdb调试core dump文件
- gdb Core Dump 调试程序错误
- LINUX core dump详解 & GDB调试
- 使用 GDB 调试 core dump 文件
- gdb core dump调试程序错误
- IOS开发之实现App消息推送(最新)
- spring中的IOC DAO 和ORM
- linux下各种变量的理解
- 修改访问共享资源的登录用户名
- 这是真的
- 调试利器:用GDB查看core dump
- bzoj4247: 挂饰(01背包)
- Undefined reference to XXX
- 理解 pkg-config 工具
- phpcms加密方式
- 如何管理“人”
- 关于O(nlogn)复杂度的体验
- C# 读写Excel、CVS
- makefile 中 $@ $^ %< 使用