我正在尝试在 Windows 上使用 NetBeans PHP 6.8 和 XAMPP 来调试一些 PHP,并在 php.ini 中设置 xdebug。一步步看起来工作正常,但是当 PHP 中的网站出现严重异常时,NetBeans 不会中断它。
我听说要在 Exception 上添加断点,但在 NetBeans 6.8 中找不到它。 Ctrl + Shift + F8 不允许我在“异常”上中断,只能在“方法”上中断。
最佳答案
就像您的评论所说,您通常需要将remote_mode设置为“jit”。
如果调试不起作用,您可以检查以下几项内容:
- 在代码中添加
xdebug_break();
行,然后查看调试器是否触发。 在 php.ini/xdebug.ini 文件中添加一些日志记录:
xdebug.remote_log="C:\temp\xdebug.log"
查看该日志文件,看看是否收到提到的断点事件。
- 检查 phpinfo() 以查看是否有如下输出:
This program makes use of the Zend Scripting Language Engine: Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with Xdebug v2.0.5, Copyright (c) 2002-2008, by Derick Rethans
如果没有“with Xdebug”行,即使列出了完整的 xdebug 选项集,您也会得到输出、xdebug_break() 调试,但没有用户设置的断点。这也可能是异常断点的问题。
造成这种情况的一般原因是加载 xdebug 扩展的方式错误。您需要将其加载为 zend_extension=/path/to/xdebug.so
- 删除以“extension=”或“zend_extension_ts=”开头的任何其他加载行。
关于windows - NetBeans PHP 不会因异常而中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1963313/