GDB调试coredump信息
- 开启生成codedump文件的命令
- ulimit -c unlimited:当程序crash之后获得core文件
- 永久生效办法:
vi /etc/profile 然后,在profile中添加: ulimit -c 1073741824 source /etc/profile
- 指定内核转储的文件名和目录 :https://blog.csdn.net/star_xiong/article/details/43529637
- 调试coredump文件
- 查看coredump文件:gdb [exec file] [core file]
栈信息
- 查看栈信息:bt,where,info stack,功能都一样,后两个是第一个的别名
- bt :查看所有栈帧
- bt n:查看栈顶n帧
- bt -n:查看栈底n帧
#1433 0x0000005e6c2277b4 in thread_entry (data=0x70a0c290b0) at /home/lxb/android/android_sampling_daemon/jni/src/thread.c:594
[1]栈帧号
[2]PC
[3]function
[4]参数以及具体的值
[5]源码的位置
- 查看帧信息
- frame n:查看第n帧
- frame addr :查看pc=addr的帧
- up n :当前帧上面第n帧
- down n:当前帧下面第n帧
- 查看详细信息
- info frame
- info frame n
- info frame addr
- info args:查看当前栈帧中的参数
- info locals:查看帧中的局部变量
- info catch:查看异常处理器
- gdb调试常用命令
- print var_name:查看变量值
- c:执行到下一个断点
- next:单步执行
断点信息
- 打断点 :b [linenum]
- 查看断点:info br
- 删除断点:cleal/delete [breakNum]
- 禁用断点:disable [breakNum]
参考
http://www.wuzesheng.com/?p=1327