<?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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦