为了账号安全,请及时绑定邮箱和手机立即绑定

GDB调试php

标签:
PHP

<?php function test1(){        while(true){              sleep(1);        }}test1();?>

cli方式执行php脚本,加入执行的进程号为14973。我们使用gdb命令来调试进程。


$sudo gdb -p 14973(gdb) print (char *)executor_globals.active_op_array->filename$1 = 0x9853a34 "/home/xinhailong/test/php/test.php"(gdb) print (char *)executor_globals.active_op_array->function_name$2 = 0x9854db8 "test1"(gdb) print executor_globals->current_execute_data->opline->lineno$3 = 4


很显然,他正在执行第四行的sleep方法。

如果上面的方法你感觉麻烦,那你可以使用.gdbinit文件。这个文件在php源码的根目录下。使用方法如下:

$sudo gdb -p 14973(gdb) source /home/xinhailong/.gdbinit(gdb) zbacktrace[0xa453f34] sleep(1) /home/xinhailong/test/php/test.php:4[0xa453ed0] test1() /home/xinhailong/test/php/test.php:7(gdb)


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消