如何在xdebug中通过api-call获取堆栈跟踪?

时间:2011-08-18 11:17:38

标签: php api stack-trace trace xdebug

我们正在使用 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电话获得所需的清晰简洁的痕迹?

非常感谢!!

1 个答案:

答案 0 :(得分:3)

我不知道为什么迹线不起作用。但你可以试试这个:

  1. 在php配置中添加选项xdebug.trace_enable_trigger=1
  2. 现在你可以通过添加XDEBUG_TRACE作为POST / GET参数或作为cookie来启动xdebug
  3. 还有一个名为 Easy XDebug 的Firefox插件来设置标志