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提供了格式化输出显示结构体的选项,这个选项的默认是关闭的