我正在尝试调试一个动态创建一个大SQL查询的WordPress插件。插件本身不组装整个查询,但它挂钩posts_clauses
动作,并将查询的组件发送到WP。然后,WP query.php文件将它们组装到一个字符串变量中。我在插件代码中设置了一个断点,然后逐步调用query.php并到达WP构建SQL字符串的点。我想复制这个字符串,但是它太长了,Netbeans在字符串完全显示之前显示省略号和单词"缩短"。
我在Linux, PHP 5和xdebug上使用NB 8.2。在NB Options|PHP|Debugger
选项卡中,我已经为"最大数据长度"输入了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设置,所以这可能不是最好的方法。