<?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)
共同学习,写下你的评论
评论加载中...
作者其他优质文章