php - 如何通过 xdebug 中的 api 调用获取堆栈跟踪?

标签 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. 在您的 PHP 配置中添加选项 xdebug.trace_enable_trigger=1
  2. 现在您可以通过添加 XDEBUG_TRACE 作为 POST/GET 参数或 cookie 来启动 xdebug

还有一个名为 Easy XDebug 的 Firefox 插件来设置标志

关于php - 如何通过 xdebug 中的 api 调用获取堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106551/

相关文章:

php - Silverstripe 3.1.2 正在修改 anchor 链接

php - Inpage urdu 到 unicode 乌尔都语转换器

c# - 如何在 C# 中使用 google drive api 为文件设置自定义文件属性

c - 从程序内部调用 gdb 以打印其堆栈跟踪的最佳方法?

php - 可重现的随机数系列

php - 尝试查找和删除文本以修复WP恶意软件时,SSH命令无法正常工作

c# - 请求 access_token Instagram

javascript - 在不同的方法中再次使用 componentDidMount 的 fetch 方法

c - 如何在不崩溃 c 中的进程的情况下生成核心转储?

c++ - 如何通过 Boost::Python 获取调用我的 C++ 函数的 Python 模块和行号?