Sublime xdebug 在 ..."get_option(" 没有断点处中断

Posted

技术标签:

【中文标题】Sublime xdebug 在 ..."get_option(" 没有断点处中断【英文标题】:Sublime xdebug breaks at ..."get_option(" without breakpoint 【发布时间】:2015-11-06 09:30:38 【问题描述】:

我已经搜索和搜索,但找不到解决方案或遇到相同问题的人。

我有一个带有 wordrpress 安装的 xampp。我将 sublime 与 xdebug 一起使用,它可以很好地调试我的代码,但它会在我没有断点的许多地方中断。

在不同的文件和位置,我使用 wordpress 命令 get_option(); 获得选项。

$sub01 = get_option(woomps_sub01);
$sub02 = get_option(woomps_sub02);

在另一个文件中,它在 session->set 处中断:

WC()->session->set( 'sub_qty' , $total_qty );

如果我运行它,它会再次在另一行中断:

$result = @call_user_func_array(array($class, 'create'), $parameters);

然后它运行得更远,并在另一个文件中的另一个 get_option 处停止:

$items_left_start = get_option(woomps_limit01);

我的断点窗口是空的。我已经清除了缓存文件夹。是否有任何其他 xdebug 清除操作我可以尝试重置它?或者我在哪里可以找到有关如何学习 xdebug 如何将此行解释为断点的信息?

我找到了一篇关于隐形断点的文章,但对我来说不是这样。我在断点窗口中看不到任何内容。 https://forums.netbeans.org/ptopic43927.html

我正在使用运行功能。

【问题讨论】:

只有 Sublime 才会发生这种情况吗?我建议您尝试使用其他编辑器(例如 Netbeans、phpStorm...)来确定问题出在哪里,是在 PHP 配置中还是在 IDE 设置中。 好的。我添加了 phpstorm 并连接了 xdebug。它没有在“看不见的”断点处中断。然后我重新安装了 xampp 以确保。当我在 sublime 中再次开始调试时,它会在这个“看不见的断点”处中断。失败必定存在于崇高的某个地方,但在哪里呢?哼哼…… 我查看了 sublime 中 xDebug 的默认设置,我看到以下内容:// Break on exceptions, suspend execution // when the exception name matches an entry in this list value. "break_on_exception": [ // E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR "Fatal error", // E_RECOVERABLE_ERROR (since PHP 5.2.0) .... ], 我的代码中的某些东西会触发这个吗? 我想我看到了一些我应该在[Notice] Use of undefined constant woomps_sub01 - assumed 'woomps_sub01 之前看到的东西。我想这就是它为什么会坏的原因。我会尝试看看我是否可以覆盖这个设置。 【参考方案1】:

如果您进入Tools -> xDebug -> Settings - Default,您将看到以下设置:

    // Break on exceptions, suspend execution
// when the exception name matches an entry in this list value.
"break_on_exception": [
    // E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR
    "Fatal error",
    // E_RECOVERABLE_ERROR (since PHP 5.2.0)
    "Catchable fatal error",
    // E_WARNING, E_CORE_WARNING, E_COMPILE_WARNING, E_USER_WARNING
    "Warning",
    // E_PARSE
    "Parse error",
    // E_NOTICE, E_USER_NOTICE
    "Notice",
    // E_STRICT
    "Strict standards",
    // E_DEPRECATED, E_USER_DEPRECATED (since PHP 5.3.0)
    "Deprecated",
    // 0
    "Xdebug",
    // default
    "Unknown error"
],

“通知”会破坏我上面粘贴的代码。告诉 Sublime/xDebug 不要破坏此代码,进入 Tools -> xDebug -> Setings - User 粘贴设置中的整个代码 - 默认并删除有关通知的部分。 (这可能不是最佳做法,但对我有用)。

【讨论】:

这就是 xDebug 崩溃的原因和解决方案:***.com/questions/33586899/…

以上是关于Sublime xdebug 在 ..."get_option(" 没有断点处中断的主要内容,如果未能解决你的问题,请参考以下文章

sublime+xdebug-client+xdebug-helper本地调试

如何配置sublime xdebug断点

如何使用 Xdebug + Sublime Text 3 调试 PHP 代码

sublime3安装xdebug

sublime3 + chrome + xdebug调试php代码

phpstorm断点怎么添加'