Retrocediendo en el tiempo a través del código fuente
La depuración por viaje en el tiempo o depuración por viaje en el tiempo es el proceso de retroceder en el tiempo a través del código fuente para comprender qué sucede durante la ejecución de un programa informático . [1] Normalmente, la depuración y los depuradores , herramientas que ayudan al usuario con el proceso de depuración, les permiten pausar la ejecución del software en ejecución e inspeccionar el estado actual del programa. [2] Los usuarios pueden luego avanzar en el tiempo, entrar o pasar por declaraciones y avanzar en una dirección hacia adelante. [3] Los depuradores interactivos incluyen la capacidad de modificar el código y avanzar en función de la información actualizada. [4] Las herramientas de depuración inversa permiten a los usuarios retroceder en el tiempo a través de los pasos que dieron como resultado llegar a un punto particular del programa. Los depuradores que viajan en el tiempo brindan estas funciones y también permiten a los usuarios interactuar con el programa, cambiar el historial si lo desean y observar cómo responde el programa. [5]
Características que respaldan los viajes bidireccionales
Hay varias características que respaldan la capacidad de avanzar y retroceder en el tiempo.
- Seleccionar un lenguaje de programación puramente funcional ayuda debido a la naturaleza autónoma de las funciones puras . Las funciones puras no tienen efectos secundarios y dependen únicamente de la información proporcionada explícitamente a la función, lo que proporciona una ruta repetible, confiable y reproducible a través del código.
- Los lenguajes y depuradores que permiten el intercambio en caliente , la capacidad de modificar el código mientras se ejecuta, proporcionan algunos de los requisitos necesarios para rebobinar y potencialmente reescribir la ejecución. [6] [7]
- Las herramientas basadas en el depurador GNU (GDB) , disponibles para lenguajes compatibles como C , C++ , Go y Fortran, son capaces de realizar depuración inversa, pero el esfuerzo ralentiza significativamente la interacción. [8]
Depuradores que viajan en el tiempo
Ejemplos de depuradores con capacidad de retroceder:
Ver también
Referencias
- ^ "¡Depuración de viajes en el tiempo en la vista previa de WinDbg!". Herramientas de depuración para Windows . Consultado el 8 de mayo de 2018 .
- ^ Telles, Mateo; Hsieh, Yuan (1 de abril de 2001). La ciencia de la depuración. Libros del grupo Coriolis. ISBN 9781576109175.
- ^ "Depuración inversa, depuración de viajes en el tiempo". deshacer.io . Consultado el 8 de mayo de 2018 .
- ^ "Depuración interactiva con Node.js - DZone Web Dev". dzone.com . Consultado el 8 de mayo de 2018 .
- ^ "Depurador de viajes en el tiempo de Elm". debug.elm-lang.org . Consultado el 8 de mayo de 2018 .
- ^ "programación interactiva". elm-lang.org . Consultado el 8 de mayo de 2018 .
- ^ "Recarga en caliente y depuración de viajes en el tiempo: ¿qué son?". Dibujos animados de código . 21/10/2015 . Consultado el 8 de mayo de 2018 .
- ^ "Seis cosas que debe saber sobre la depuración de viajes en el tiempo". deshacer.io . Consultado el 8 de mayo de 2018 .
- ^ "UDB: depurador de viajes en el tiempo para C/C++".
- ^ "ProvTools/provDebugR". github.com . 2018-07-31 . Consultado el 31 de julio de 2018 .
- ^ "Depurador de viajes en el tiempo PyTrace para Python".
- ^ "Introducción a Wallaby.js: depurador de viajes en el tiempo". wallabyjs.com . Consultado el 27 de febrero de 2020 .
- ^ Donut, Fox (29 de abril de 2018). "No necesita Redux, MobX, RxJS, Cerebral". Donut de zorro . Consultado el 24 de mayo de 2018 .
- ^ "Acerca de RevDeBug". revdebug.com . Consultado el 28 de marzo de 2020 .
- ^ "Whyline para Java". cs.cmu.edu . Consultado el 21 de enero de 2021 .
- ^ "viajar en el tiempo es fácil". elm-lang.org . Consultado el 8 de mayo de 2018 .
- ^ "Ley Greg sobre depuración, registro y reproducción de datos e hiperobservabilidad".
- ^ "Ley Greg sobre depuración, registro y reproducción de datos e hiperobservabilidad".
- ^ DOMARES. "Depuración de viajes en el tiempo: descripción general". docs.microsoft.com . Consultado el 8 de mayo de 2018 .
- ^ "Obtener vista previa de WinDbg". Microsoft .
- ^ "Análisis atemporal del sistema completo para Windows".
- ^ "Análisis atemporal del sistema completo para Linux".