Netbeans PHP 调试器中的缩短值

Shortened value in Netbeans PHP debugger

我正在尝试调试动态创建大型 SQL 查询的 WordPress 插件。插件本身不会 assemble 整个查询,但它会挂钩 posts_clauses 操作并将查询的组件发送到 WP。然后 WP query.php 文件 assemble 将它们放在一个字符串变量中。我在插件代码中设置了一个断点,然后逐步调用 query.php 并到达 WP 构建 SQL 字符串的位置。我想复制这个字符串,但是它太长了,Netbeans 在字符串完全显示之前显示了省略号和单词 "shortened"。

我在 Linux、PHP 5 和 xdebug 上使用 NB 8.2。在 NB Options|PHP|Debugger 选项卡中,我已经为 "Maximum data length" 输入了 16384 并且我已经将以下行放入 xdebug 配置文件中:

xdebug.var_display_max_data=16384

我已经重新启动了 Netbeans 和 Apache,但问题仍然存在。显示的 SQL 字符串部分正好是 2000 个字符长。

我知道我可以挂钩 posts_pre_query WP 操作,并记录查询,但是见鬼,我正在调试,我不想添加强制我更改源代码的丢弃代码已经调试和测试...

如何让 NB 在调试器中显示 PHP 超过 2000 个字符的字符串值?

在深入研究 NB 源代码后,我找到了解决方案。 nb.php.debugger.full.values 属性 控制值是否被截断。要禁用变量截断,请编辑您的 netbeans.conf 文件并将 -J-Dnb.php.debugger.full.values=true 添加到 netbeans_default_options 选项的末尾:

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dnb.php.debugger.full.values=true"

之后重新启动 IDE。

我之前不需要通过配置更改 NB 设置,所以这可能不是最好的方法。