GNU symbolic debugger,简称「GDB 调试器」,是 Linux 平台下最常用的一款程序调试器。

可以缩写,类似路由交换机的命令

# gdb 二进制文件
gef> disas main  // 反汇编main函数
gef> n   // next 下一条指令
gef> si  // step into,单步汇编指令
gef> s   //step 如果可能,进入此行的功能
gef> b main  // 在main下断点 break location,编号1 
gef>  break *0x40055a // 也是下断点 具体到内存地址 编号2
gef> delete // 清除断点
gef> i b // info break :Display breakpoint and watchpoint information and number
gef> delete NUMBER

cored dump

程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。

通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成第一个文件,许多的程序出错的时候都会产生一个core文件,通过工具分析这个文件,我们可以定位到程序异常退出的时候对应的堆栈调用等信息,找出问题所在并进行及时解决。

查看状态

# 返回0即为关闭
ulimit -c

关闭cored dump

ulimit -c 0

临时开启

指定大小开启

ulimit -c 1024

不限制

ulimit -c unlimited

永久开启

参考底部链接

界面

gdb-gef

参考

标签: GDB, 命令行调试, 反编译

仅有一条评论

  1. 感谢分享 赞一个

添加新评论