如何使用Xdebug调试插件?


12

我能够在本地环境中基于PHP 5.3.0(XAMPP)轻松安装和设置NetBeans 6.9.1和Xdebug。

现在的问题是:如果在Wordpress的index.php或其他Wordpress核心PHP文件上设置断点,则NetBeans会正确停在所需位置。相反,如果我在插件文件上放置一个断点,则触发代码执行的NetBeans不会在那里停止。

您知道如何解决吗?

更新:有关我要调试的更多信息

该插件称为Vanilla论坛,具有以下文件结构:

- plugins
  - vanilla-forums
    + assets
    + nbproject
    + templates
      admin.php
      embed.php
      functions.php
      hooks.php
      plugin.php
      sso.php
      widgets.php

我在vf_validate_options定义的名为函数中设置了断点functions.php。我确定该函数已执行,但是NetBeans不会在此中断。


如果throw new Exception('die');在断点行之后放置一条语句,它是否会停止(意思是这会终止/终止您的请求)?
hakre 2011年

@hakre是的,它引发异常(我确定设置了断点的代码已执行)
Drake

1
@Drake:此代码是在主页中执行还是在Ajax调用中执行?我相信必须使用一些GET或POST变量启用Xdebug调试器,然后设置一个cookie,也许未为Ajax请求启用它?
Jan Fabry'2

1
我有完全相同的问题,但仍然找不到解决方法!我正在使用nusphere phped,但是我也尝试了Eclipse,但没有结果!xdebug在断点处停止的唯一文件是wordpress“核心”文件。主题的php文件均不可调试!让我知道,如果您找到解决方案,我在wordpress官方论坛上发了一个帖子,没有回复:(
Kreker 2011年

1
我认为Jan Fabry即将提出解决方案。我更喜欢使用Firefox插件EasyXdebug,它将XDEBUG_SESSION_START向所有请求添加查询参数。
杰夫·斯蒂勒

Answers:




0

@Drake:

我知道这个愚蠢的问题,但是您“激活”了该插件吗?当插件未调试时,这就是我绊倒的地方。


是的,插件已激活。我要调试的是由管理员区域中的插件自身创建的菜单触发的功能。
德雷克

@Drake-什么是“功能触发器”? 您可以将代码发布为问题的更新吗?
MikeSchinkel '02

0

无法调试插件的文件。我发现调试wordpress的唯一方法是使用nusphere phped wich,不幸的是,这不是免费软件。这似乎是唯一可以做到的,我不知道为什么,但是我花了很长时间弄清楚如何使用netbeans和eclipse进行调试……没有结果!


-3

好吧,由于WordPress本身提供WP_DEBUG,以及wp_die($msg)...为什么需要使用Xdebug进行调试?除非您使用框架构建插件?


xdebug提供了许多WP_DEBUG和输出功能所不具备的工具-概要分析并逐步执行代码以作为开始...
boisvert

同意,当时我对Xdebug的了解很少。
adrian7
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.