Recentemente mi sono imbattuto in un problema che sfidava le mie capacità di programmazione, ed era un ciclo infinito molto casuale. Avevo riscritto un codice per asciugarlo e cambiato una funzione che veniva ripetutamente chiamata dai metodi esatti che chiamava; un problema elementare, certamente. Apache ha deciso di risolvere il problema arrestandosi in modo anomalo e il registro non ha rilevato nient'altro che "processo figlio generato". Il problema era che non ho mai finito di fare il debugging del problema quel giorno, è saltato fuori nel pomeriggio e ho dovuto risolverlo oggi.Come eseguire il debug e la protezione da loop infiniti in PHP?
Alla fine, la mia soluzione era semplice: registrare la logica manualmente e vedere cosa è successo. Il problema era immediatamente evidente quando avevo un file di registro costituito da due linee univoche, seguite da due righe che venivano ripetute circa duecento volte l'una.
Quali sono alcuni modi per proteggerci da loop infiniti? E quando ciò fallisce (e lo sarà), qual è il modo più veloce per rintracciarlo? È davvero il file di registro che è più efficace o qualcos'altro?
La tua risposta potrebbe essere indipendente dal linguaggio se fosse una buona pratica, ma preferirei attenermi alle tecniche e al codice specifici di PHP.
Questa domanda non mi sembra diversa dalla domanda generale "come scrivere software privi di bug" ... – gahooa
@gahooa, sei solo tu; Non sono interessato a software privo di bug perché non ci arriverà mai. Voglio solo suggerimenti per cogliere questo problema, che mi ha colto di sorpresa l'altro giorno. –