我是一名C ++ / C#程序员,他有一些使用PHP构建网站的经验。我最近安装了NetBeans和xdebug,因为我不能再使用调试器了。单步执行代码就像魅力一样,但似乎无法让xdebug暂停异常并向我显示调用堆栈。
以下是一个例子:
<?php
// File is not found. xdebug should stop and show the call stack.
require 'nonexistant.php';
?>
我使用本地MAMP PRO 2.0.1服务器在Mac(Snow Leopard)上运行。我有NetBeans 7.0.1,配置为使用我的MAMP PHP解释器,使用xdebug 2.1.0运行。这是我当前的xdebug设置,位于我的“php.ini”文件中:
zend_extension="/Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1
以下是NetBeans中我的设置的屏幕截图:
我已经验证正在加载“php.ini”中的设置,并且NetBeans已正确配置以进行调试,但我仍然无法获得异常或内部错误来生成堆栈跟踪。任何接受者? :)
答案 0 :(得分:1)
display_errors是否已开启?
对于您的具体示例:
<?php
// File is not found. xdebug should stop and show the call stack.
require 'nonexistant.php';
?>
您正在创建致命错误,并且需要在php.ini中打开display_errors 如果您在运行时使用ini_set(),则不会显示致命错误。
要查看捕获的异常的堆栈跟踪,您需要打开:
xdebug.show_exception_trace
好吧,
乔