В экстремальных обстоятельствах я в конечном итоге использую Linux strace
, но я делаю это в основном, когда проблема касается внутренних вещей (таких как заголовки, проблемы со стеком и сбои).
Более подходящим для PHP способом является использование xdebug, поскольку он предназначен специально для PHP.
Чтобы использовать GDB, используйте как любую другую программу, которую вы используете в GDB. Если вы не можете зайти так далеко, я почти уверен, что вы не добьетесь большого успеха в использовании GDB.
О, и вот спасительный фрагмент PHP:
<code>function the_end(){
if(($err=error_get_last()))
die('<pre>'.print_r($err,true).'
');
}
register_shutdown_function ( 'the_end');
Примечание 1: Если вы имеете дело с сбоями сервера, есть большая вероятность, что вышеприведенное не сработает. Это довольно редко, хотя.
Примечание 2: Если register_shutdown_function
уже используется в другом месте, обязательно повторите его, чтобы обеспечить окончательное выполнение, например:
function my_other_final_function(){ /* ... */ }
register_shutdown_function('my_final_function');
function the_end(){ /* ... */ }
function the_end2(){ register_shutdown_function('the_end'); }
register_shutdown_function('the_end2');