다음을 통해 공유


기호가 없는 User-Mode 프로세스 디버깅

사용자 모드 오류에 대한 디버거를 시작하기 전에 오류 컴퓨터에 기호가 있어야 합니다. 그러나 경우에 따라 디버거가 기호 없이 시작됩니다. 문제를 쉽게 재현할 수 있는 경우 기호를 복사하고 다시 실행할 수 있습니다. 그러나 문제가 다시 발생하지 않을 수 있는 경우 오류에서 일부 정보를 계속 수집할 수 있습니다.

  1. 주소의 의미를 파악하려면 오류와 일치하는 컴퓨터가 필요합니다. 동일한 플랫폼(x86 또는 x64)이 있어야 하며 동일한 버전의 Windows로 로드되어야 합니다.

  2. 컴퓨터를 구성한 경우 사용자 모드 기호와 디버그하려는 이진 파일을 새 컴퓨터에 복사합니다.

  3. 기호 없는 컴퓨터에서 CDB 또는 WinDbg를 시작합니다.

  4. 기호 없는 컴퓨터에서 실패한 애플리케이션을 모르는 경우 | (프로세스 상태) 명령. 이름을 지정하지 않으면 기호 없는 컴퓨터에서 KD에 침입하고 !process 0 0을 수행하여 CDB 명령에서 제공한 프로세스 ID를 찾습니다.

  5. 두 디버거를 설정했는데, 하나는 오류에 부딪히지 않은 기호와 오류가 발생했지만 기호가 없는 디버거가 설정된 경우 기호 없는 컴퓨터에서 k(Display Stack Backtrace) 명령을 실행합니다.

  6. 기호가 있는 컴퓨터에서 기호 없는 스택에 지정된 각 주소에 대해 u(언어셈블) 명령을 실행합니다. 이렇게 하면 기호 없는 컴퓨터에서 오류에 대한 스택 추적이 제공됩니다.

  7. 스택 추적을 보면 호출과 관련된 모듈 및 함수 이름을 볼 수 있습니다.