La depuración de viajes en el tiempo o la depuración de viajes en el tiempo es el proceso de retroceder en el tiempo a través del código fuente para comprender lo que sucede durante la ejecución de un programa informático . [1] Normalmente, la depuración y los depuradores , herramientas que ayudan a un usuario con el proceso de depuración, permiten a los usuarios pausar la ejecución del software en ejecución e inspeccionar el estado actual del programa. [2] Los usuarios pueden entonces dar un paso adelante en el tiempo, entrar en o sobre 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 resultaron en llegar a un punto particular en el programa. Los depuradores de viajes en el tiempo proporcionan estas características y también permiten a los usuarios interactuar con el programa, cambiar el historial si lo desean y ver cómo responde el programa. [5]
Características que admiten viajes bidireccionales
Hay varias características que respaldan la capacidad de retroceder y avanzar en el tiempo.
- La selección de 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 solo 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 el código, 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 una depuración inversa, pero el esfuerzo ralentiza significativamente la interacción. [8]
Depuradores que viajan en el tiempo
Los depuradores con la capacidad de retroceder incluyen:
- Depurador de olmo [5]
- Reactor de olmo [9]
- Trazador de meiosis [10]
- Herramienta de depuración de viajes en el tiempo (TTD) de Microsoft [11] para software nativo de Windows (x86, x64, ARM, ARM64 [12] )
- ocamldebug para OCaml
- UDB para Linux [13]
- rr para x86 Linux
- provDebugR para R [14]
- Wallaby.js para JavaScript [15]
- RevDeBug para C # y Java [16]
- WhyLine para Java [17]
Ver también
- Computación interactiva
- Lista de lenguajes de programación puramente funcionales
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, Matthew; Hsieh, Yuan (1 de abril de 2001). La ciencia de la depuración . Libros del grupo Coriolis.
- ^ "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 .
- ^ a b "Depurador de viaje 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 . 2015-10-21 . Consultado el 8 de mayo de 2018 .
- ^ "6 cosas que debe saber sobre la depuración de viajes en el tiempo" . deshacer.io . Consultado el 8 de mayo de 2018 .
- ^ "viajar en el tiempo de forma fácil" . elm-lang.org . Consultado el 8 de mayo de 2018 .
- ^ Donut, Fox (29 de abril de 2018). "No necesitas Redux, MobX, RxJS, Cerebral" . Donut de zorro . Consultado el 24 de mayo de 2018 .
- ^ DOMARES. "Depuración de viajes en el tiempo - Resumen" . docs.microsoft.com . Consultado el 8 de mayo de 2018 .
- ^ https://www.microsoft.com/en-us/p/windbg-preview/9pgjgd53tn86?activetab=pivot:regionofsystemrequirementstab
- ^ https://undo.io/udb/
- ^ "ProvTools / provDebugR" . github.com . 2018-07-31 . Consultado el 31 de julio de 2018 .
- ^ "Introducción a Wallaby.js: depurador de viajes en el tiempo" . wallabyjs.com . Consultado el 27 de febrero de 2020 .
- ^ "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 .