相关疑难解决方法(0)

如何在lldb中的实时运行脚本上转储PHP回溯?

我正在玩LLDB(调试器),我做了以下实验.

  1. 运行PHP脚本:

    php -r "sleep(1000);"
    
    Run Code Online (Sandbox Code Playgroud)

    要么:

    php -r "function r(){sleep(1000);}r();"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在另一个控制台上,我直接打电话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?或者使用正确的参数,如果是,哪一个?

我只对 …

php debugging gdb debug-symbols lldb

11
推荐指数
1
解决办法
621
查看次数

标签 统计

debug-symbols ×1

debugging ×1

gdb ×1

lldb ×1

php ×1