我正在调试一个庞大而混乱的 PHP 代码库。
该应用程序当前行为异常并将所有流量重定向到登录屏幕,因为它似乎无法启动会话。
我用 xDebug 跟踪了这样一个场景,只看到main
,根本没有分支。
这是否意味着未捕获的异常正在完全展开堆栈?
如果是这种情况,即使发生这种情况,有没有办法获得调用图?
调用图应该显示所有被调用的函数,当然,如果没有被调用,你只会看到“main()”(例如,如果在 main 中你试图调用一个未定义的函数)。使用 Xdebug,您可以通过“函数跟踪”来跟踪调用了哪些函数,您可以通过设置“xdebug.auto_trace=1”来启用它。然后,您将在 /tmp 中获得一个以 .xt 结尾的文件,其中列出了所有函数调用。您还可以在http://www.xdebug.org/docs/execution_trace#collect_assignments中包含更多信息
解决调试问题的另一种方法是使用单步调试(也称为远程调试),许多 IDE 支持与 Xdebug 结合使用。有关更多信息,请参阅:http ://www.xdebug.org/docs/remote