前言
有人知道怎么用xdebug调试插件吗?还是不能实现的?可以留言交流一下 感谢
core dump 调试
因为不太会用xdebug,因此采用linux的通用debug方法——coredump文件 (针对segmentation fault)
0x01 配置 core dump功能
ulimit -c //查看系统是否开启了core dump功能,0表示coredump文件大小为0,等于未开启该功能
ulimit -c unlimited // 设置coredump文件大小为不限制
echo "/home/username/core-%e-%p-%t" > /proc/sys/kernel/core_pattern //设置coredump保存地址在用户目录,注意username改成自己的
0x02 调试过程
php ...... //执行某php命令 报错:segmentation fault
gdb php corefile // 到 /home/username查看coredump文件
可以看到报错的代码行
gdb调试
gdb php
(gdb) set args 参数
r
# 在run一次之后,能够读取出extension中的函数,之后再根据函数名设立断点
b func_name
r
0x01 gdb php调试常用命令
set listsize num #设置list范围
list #展示当前代码段上下文
info local #展示临时变量
info br #查看当前断点情况
bt #查看程序调用栈
clear #删除程序中所有的断点
clear 行号 #删除这行的断点
clear 函数名 #删除该函数的断点
delete b_id1 b_id2 #删除指定编号的断点
print 变量名 #查看变量信息
x #输出相应地址存放的内容