我们正在使用xdebug,并且跟踪工作如广告在代码执行期间通过..
function someGetUsersHelper() {
xdebug_start_trace();
[SOME CODE HERE]
xdebug_stop_trace();
}
但是,如果页面/脚本是通过请求在浏览器中加载完整页面来执行的,那么它只会跟踪代码的包装部分
index.php
但是当我们通过 api 调用来调用该函数时,跟踪不起作用
index.php?api=getUsers
即使成功执行了完全相同的函数,它也不会跟踪。
作为补充说明:如果从 phpunit 测试用例调用该函数或者我们在 php.ini 中设置 xdebug.auto_trace = 1,则跟踪也可以工作,但这会给我们留下一个非常长、困惑的跟踪文件。
所以问题是这样的:
- 这可能是什么问题/原因以及我们如何设法获得 想要通过 API 调用获得清晰、简洁的跟踪?
非常感谢!!
最佳答案
我无法说出为什么跟踪不起作用。但你可以试试这个:
- 在您的 PHP 配置中添加选项
xdebug.trace_enable_trigger=1
- 现在您可以通过添加
XDEBUG_TRACE
作为 POST/GET 参数或 cookie 来启动 xdebug
还有一个名为 Easy XDebug 的 Firefox 插件来设置标志
关于php - 如何通过 xdebug 中的 api 调用获取堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106551/