Recientemente me topé con un problema que desafió mis habilidades de programación, y fue un ciclo infinito muy accidental. Reescribí un código para secarlo y cambié una función a la que llamaban repetidamente los métodos exactos que llamaba; una cuestión elemental, sin duda. Apache decidió resolver el problema al estrellarse, y el registro no notó nada más que "proceso hijo engendrado". El problema fue que en realidad nunca terminé de depurar el problema ese día, apareció por la tarde y tuve que resolverlo hoy.¿Cómo depurar y proteger contra los bucles infinitos en PHP?
Al final, mi solución fue simple: registrar la lógica manualmente y ver qué sucedió. El problema fue inmediatamente aparente cuando tenía un archivo de registro que constaba de dos líneas únicas, seguidas de dos líneas que se repetían unas doscientas veces cada una.
¿Cuáles son algunas formas de protegernos contra ciclos infinitos? Y, cuando eso falla (y lo hará), ¿cuál es la forma más rápida de rastrearlo? ¿Es realmente el archivo de registro el más efectivo o algo más?
Su respuesta podría ser independiente del idioma si fuera una mejor práctica, pero prefiero seguir con las técnicas y el código específicos de PHP.
Esta pregunta no me parece diferente a la pregunta general "¿cómo escribimos el software libre de errores? ... – gahooa
@gahooa, eso es solo usted; No me interesa el software libre de errores porque nunca llegará. Solo quiero consejos para detectar este problema, lo que me tomó por sorpresa el otro día. –