我正在玩LLDB(调试器),我做了以下实验.
运行PHP脚本:
php -r "sleep(1000);"
Run Code Online (Sandbox Code Playgroud)
要么:
php -r "function r(){sleep(1000);}r();"
Run Code Online (Sandbox Code Playgroud)在另一个控制台上,我直接打电话zif_debug_backtrace()给lldb:
echo 'call (void)zif_debug_backtrace()' | lldb -p $(pgrep -fn php)
Run Code Online (Sandbox Code Playgroud)以上工作,但过程停止时出现以下警告:
Warning: sleep() expects at most 2 parameters, 1606408648 given in Command line code on line 1
Call Stack:
0.0016 235152 1. {main}() Command line code:0
0.0021 235248 2. sleep(1000) Command line code:1
Run Code Online (Sandbox Code Playgroud)
我不太清楚为什么脚本必须停止以及我需要做些什么来实现透明度(不影响脚本)?
PS同样的呼叫zif_debug_print_backtrace()和呼叫时发生的事情custom_backtrace()显示:Backtrace null function called.我正在使用,xdebug如果改变了什么.
也许我需要调用一个不同的函数zend_fetch_debug_backtrace(参见:) image dump symtab?或者使用正确的参数,如果是,哪一个?
我只对 …