Я использую 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
Я знаю, что это может быть немного поздно для игры, но вы можете использовать:
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 ()
Выдает точку останова клиенту отладки.
Эта функция прерывает отладчик в определенной строке, как если бы
в этой строке была установлена нормальная точка прерывания файла / строки.
Это невозможно только с помощью xdebug, однако в php вы можете использовать set_exception_handler, чтобы зарегистрировать функцию, которая перехватывает необработанные исключения. Затем вы можете поместить точку останова в эту функцию.
Увидеть http://php.net/manual/en/function.set-exception-handler.php
Вы можете сделать то же самое для ошибок: