시간 이동 디버깅
Time travel debugging시간 여행 디버깅 또는 시간 여행 디버깅은 컴퓨터 프로그램 [1]실행 중에 무슨 일이 일어나는지 이해하기 위해 소스 코드를 통해 시간을 되돌리는 과정입니다.일반적으로 디버깅 및 디버거는 실행 중인 소프트웨어의 실행을 일시 중지하고 [2]프로그램의 현재 상태를 검사할 수 있는 도구입니다.그런 다음 사용자는 시간 내에 앞으로 나아가 스테이트먼트에 들어가거나 스테이트먼트를 넘어 앞으로 나아갈 [3]수 있습니다.인터랙티브 디버거에는 코드를 수정하고 업데이트된 [4]정보에 따라 전진하는 기능이 포함됩니다.리버스 디버깅툴을 사용하면 프로그램의 특정 포인트에 도달한 스텝에서 시간을 되돌릴 수 있습니다.시간 여행 디버거는 이러한 기능을 제공하며 사용자가 프로그램과 상호 작용하여 필요에 따라 이력을 변경하고 프로그램이 어떻게 [5]반응하는지 볼 수 있습니다.
양방향 이동을 지원하는 특성
시간적으로 전진할 뿐만 아니라 후퇴할 수 있는 능력을 지원하는 몇 가지 특성이 있습니다.
- 순수 함수 프로그래밍 언어를 선택하면 순수 함수의 자급자족적 특성 때문에 도움이 됩니다.순수한 함수는 부작용이 없으며 함수에 명시적으로 제공된 정보에만 의존하여 코드를 통해 반복 가능하고 신뢰할 수 있으며 재생 가능한 경로를 제공합니다.
- 핫 스와핑, 코드 실행 시 코드 수정 기능, 되감기에 필요한 몇 가지 요건 및 실행 [6][7]재작성을 가능하게 하는 언어 및 디버거.
- C, C++, Go, Fortran과 같은 호환 언어에서 사용할 수 있는 GNU 디버거(GDB) 기반의 툴은 역디버깅이 가능하지만, 그 때문에 상호작용이 [8]현저하게 느려집니다.
시간 이동 디버거
뒤로 물러설 수 있는 디버거의 예:
| 언어 | 디버거 |
|---|---|
| C++ | x86 Linux의 경우 rr, Linux의 경우[9] UDB 실행 취소 |
| R | 디버깅[10] |
| 파이썬 | 파이[11] 트레이스 |
| 자바스크립트 | WhyLine, Wallaby.js,[12] 감수분열[13] 트레이서 |
| C# | RevDebug |
| 자바 | C# 및 [14]Java용 RevDebug, [15]Java용 WhyLine, UDB 실행 취소 |
| 느릅나무 | Elm 디버거, Elm[16] Reactor |
| OCaml | ocamldebug |
| 가세요 | Linux용[17] UDB 실행 취소 |
| 녹 | Linux용[18] UDB 실행 취소 |
| Windows 네이티브 | Windows 네이티브 소프트웨어(x86, x64, ARM, ARM64[20])용 Microsoft Time Travel Debugging(TTD) 툴[19] |
「 」를 참조해 주세요.
레퍼런스
- ^ "Time Travel Debugging in WinDbg Preview!". Debugging Tools for Windows. Retrieved 2018-05-08.
- ^ Telles, Matthew; Hsieh, Yuan (2001-04-01). The Science of Debugging. Coriolis Group Books. ISBN 9781576109175.
- ^ "Reverse debugging, time travel debugging". undo.io. Retrieved 2018-05-08.
- ^ "Interactive Debugging With Node.js - DZone Web Dev". dzone.com. Retrieved 2018-05-08.
- ^ "Elm's Time Travelling Debugger". debug.elm-lang.org. Retrieved 2018-05-08.
- ^ "interactive programming". elm-lang.org. Retrieved 2018-05-08.
- ^ "Hot reloading and time travel debugging: what are they?". Code Cartoons. 2015-10-21. Retrieved 2018-05-08.
- ^ "6 Things You Should Know About Time Travel Debugging". undo.io. Retrieved 2018-05-08.
- ^ "UDB - Time Travel Debugger for C/C++".
- ^ "ProvTools/provDebugR". github.com. 2018-07-31. Retrieved 2018-07-31.
- ^ "PyTrace Time Travel Debugger for Python".
- ^ "Wallaby.js Introduction: Time Travel Debugger". wallabyjs.com. Retrieved 2020-02-27.
- ^ Donut, Fox (2018-04-29). "You Don't Need Redux, MobX, RxJS, Cerebral". Fox Donut. Retrieved 2018-05-24.
- ^ "About RevDeBug". revdebug.com. Retrieved 2020-03-28.
- ^ "Whyline for Java". cs.cmu.edu. Retrieved 2021-01-21.
- ^ "time travel made easy". elm-lang.org. Retrieved 2018-05-08.
- ^ "Greg Law on Debugging, Record & Replay of Data, and Hyper-Observability".
- ^ "Greg Law on Debugging, Record & Replay of Data, and Hyper-Observability".
- ^ DOMARS. "Time Travel Debugging - Overview". docs.microsoft.com. Retrieved 2018-05-08.
- ^ "Get WinDbg Preview".