GDB
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
永久开启
参考底部链接
界面
参考