디버거를 처음부터 직접 작성해 보았다
Writing a Debugger from Scratch
Microsoft 디버거 플랫폼 팀을 두 번 떠나면서 저자는 매번 자신만의 디버거를 작성하기 시작했다. 이번에는 Rust를 배우고 디버거의 작동 방식을 더 쉽게 설명하기 위해 Windows용 사용자 모드 디버거를 처음부터 구현한다. 이 글에서는 디버거의 핵심 개념인 이벤트 루프, 프로세스에 연결하는 방법(CreateProcessW 사용), 디버그 이벤트 모니터링(WaitForDebugEventEx와 ContinueDebugEvent 사용)을 다룬다. Rust 코드는 간단히 설명하지만 핵심 개념은 모든 언어에 적용된다.
디버거가 프로세스에 연결하면 OS는 대상 프로세스를 일시 중지하고 디버거에 이벤트를 알린 후, 디버거가 ContinueDebugEvent를 호출할 때까지 기다립니다.