Wczoraj udało mi się wyłożyć kompletnie produkcyjną aplikację klienta. Problemów było kilka, ponieważ serwer produkcyjny jest ustawiony tak, aby najmniejszy błąd z samego PHP nie ujrzał światła dziennego. Gdy dodatkowo nie mamy możliwości zmiany zachowania serwer, a upgrade nawalił i nie ma możliwości łatwego zdebugowania kodu, możemy ratować się takim oto snippetem:

declare ( ticks=1 );
register_tick_function ( function ()
{
    file_put_contents ( "trace.log", print_r ( debug_backtrace(), true ) );
});

Oczywiście jeśli istnieje możliwość rekonfiguracji serwera, można użyć xdebug’a itd. jednak myślę, że otrzymanie ostatniego backtrace’a w tak szybki sposób, jest znacznie wygodniejsze i łatwiejsze w implementacji bez jakiejkolwiek ingerencji w źródła aplikacji ( poza plikiem index.php ), czy ustawienia środowiska.