我可以在异常时使xdebug停止\中断吗? (Ubuntu / Netbeans IDE / PHP 5.4 / CLI / xdebug)

时间:2014-09-17 10:01:09

标签: php xdebug

我是运行PHP CLI应用程序。

如果我设置断点,xdebug就会停止。如果我写xdebug_break();它也会停止。

如果应用程序抛出异常,我可以停止吗?

我的ini文件:

php -i | grep php.ini 加载的配置文件=>的 /etc/php5/cli/php.ini

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

2 个答案:

答案 0 :(得分:2)

我知道游戏可能有点晚了,但您可以使用:

function my_exception_handler(Throwable $e) {

  if (function_exists('xdebug_break') )
    xdebug_break();

  die('Exception: ' . $e->getMessage() );

} // Function //

set_exception_handler('my_exception_handler');

正如它在xdebug文档中所述:

  

bool xdebug_break()

     

向调试客户端发送断点。

     

此函数使调试器在特定行上中断,就像a一样   在这一行设置了普通文件/行断点。

答案 1 :(得分:1)

单独使用xdebug是不可能的,但是在php中你可以使用set_exception_handler注册一个捕获未捕获异常的函数。然后,您可以在该函数中放置断点。

请参阅http://php.net/manual/en/function.set-exception-handler.php

您可以对错误执行相同的操作:

http://php.net/manual/en/function.set-error-handler.php