linux abort gdb - yaokun123/php-wiki GitHub Wiki
一、启动gdb
> gdb //直接调试
> gdb php //启动gdb调试指定程序app
> gdb -p PID //启动gdb调试指定进程ID号
> gdb -tui //启动gdb,并且分屏显示源代码
//也可以进入gdb后键入layout命令来实现分屏展示源代码(展示源代码时候有点bug)
//也可以进入gdb后使用快捷键ctrl+x+a来实现分屏展示源代码(效果跟layout一样)
//推荐使用-tui
二、调试命令
> run index.php //重新开始运行文件,简写r
> next //单步调试(逐过程,函数直接执行),简写n
> step //单步调试(逐语句:跳入自定义函数内部执行),简写s
> set //设置变量的值
> frame //切换函数的栈帧,简写f
> finish //结束当前函数,返回到函数调用点
> continue //继续运行到下一个断点,简写c
> quit //退出gdb,简写q
> breakpoints zendparse //在zendparse函数处设置断点,简写b
> breakpoints num //在第num行设置断点
> info breakpoints //查看当前设置的所有断点
> deleted breakpoints num //删除第num个断点,简写d
> enable breakpoints //启用断点
> disable breakpoints //禁用断点
三、打印
> backtrace //查看函数的调用的栈帧和层级关系,简写bt
> info //查看函数内部局部变量的数值,简写i
> print //打印值及地址,简写p
> display //追踪查看具体变量值
> undisplay //取消追踪观察变量
> disassemble //查看汇编
设置
set print pretty on // GDB提供了格式化输出显示结构体的选项,这个选项的默认是关闭的