마이크로소프트의 타임 트래블 디버거: TTD 심층 분석
2025-03-13

마이크로소프트의 Time Travel Debugging(TTD)은 강력한 사용자 모드 기록 및 재생 프레임워크로, 개발자는 마치 타임라인을 이동하는 것처럼 프로그램을 디버깅할 수 있습니다. DLL을 삽입하여 프로세스 실행의 모든 상태를 캡처하고 .trace 파일에 저장합니다. 핵심은 Nirvana 런타임 엔진으로, CPU 명령어를 에뮬레이트하여 세밀한 제어를 제공합니다. 부동 소수점 연산, 메모리 모델, 주변 장치 에뮬레이션, 자체 수정 코드와 같은 과제에도 Nirvana는 동적 바이너리 변환 및 코드 캐싱 기술을 사용하여 효율성과 정확성을 보장합니다. 이 문서에서는 TTD를 사용하여 난독화된 32비트 PE 파일을 디버깅하는 중 발생한 버그에 대해 설명하고, TTD 추적 파일 자체를 디버깅에 사용하는 이점을 강조합니다.
개발
코드 재생