Domanda
Uso xdebug per il debug e la comprensione del codice nei progetti php ormai da un po 'di tempo, e talvolta mi sono imbattuto in situazioni in cui non è chiaro cosa stia accadendo all'interno di PHP.
È possibile impostare xdebug o gdb in modo da poter rintracciare le effettive funzioni integrate di php?
Soluzione
Se stai usando un sistema macosx, solaris o un recente sistema freebsd, puoi lanciarne un po '. Può tornare utile per quelli troppo numerosi "WTF sta facendo PHP?" momenti.
Altri suggerimenti
Ne dubito, xdebug è pensato per tracciare il tuo codice PHP, non gli interni. Si presume che gli interni siano privi di bug (che ovviamente non lo sono a volte, ma questo va oltre lo scopo di xdebug).
Puoi sempre guardare la fonte PHP se vuoi sapere cosa fanno le funzioni integrate, ma a volte è piuttosto peloso. I documenti manuali di PHP mi hanno sempre servito abbastanza bene quando voglio sapere cosa faranno.
Puoi usare gdb per tracciare il codice di livello C, a condizione che php sia compilato con simboli di debug. Dai un'occhiata qui per iniziare:
Un modo per testare l'output del motore Zend, per dare un'occhiata all'interno degli opcode, puoi usare Il VLD di Derick Rethan (Vulcan Logic Dissasembler) , che sembra essere anche su PECL . Nota: funziona solo su sistemi * nix (consultare il sito per i requisiti).
Alcuni esempi di debug di questi codici operativi sono disponibili su Blog di Sara Golemon , in articoli come Comprensione dei codici operativi e Come è lungo un pezzo di spago? .
Esiste anche un'ottima estensione di Google Chrome Console PHP con libreria php che consente di:
- Vedi errori e amp; eccezione nella console e ampli JavaScript di Chrome; nei popup di notifica.
- Scarica qualsiasi variabile di tipo.
- Esegui il codice PHP da remoto.
- Proteggi l'accesso tramite password.
- Raggruppa i log della console su richiesta.
- Vai al file degli errori: riga nell'editor di testo.
- Copia i dati di errore / debug negli Appunti (per tester).
Consiglia a tutti!