windbg 명령어

windbg 명령어

2024년 12월 1일
  • g: go

  • ~: 스레드 출력

  • ~N: 스레드 스위치

  • ~Ns: 스레드 스위치 후 start

  • k: 콜스택 출력

  • qd: quit and detach. 앱에서 디버거를 분리하는 명령

  • dv: 로컬변수 출력

  • | : 현재 디버깅중인 실행파일 이름, PID 출력

  • || : 디버깅 모드 출력

  • .dump /ma : 현재 상황에서 Full memory user mini dump 해서 path에 저장

  • r : register

  • .hh : help 문서. 모든 명령이 다 있다.

  • lm : loaded module. 로드된 모든 모듈을 확인할 수 있으며, 심볼 여부(pdb symbols) 나 심볼파일의 로컬 경로도 확인할 수 있다.

f428193c-8eba-4ac2-9718-55cc12502496

시스템에서 사용하는 일부 라이브러리들은 마이크로소프트 심볼 서버( https://msdl.microsoft.com/download/symbols)에서 공개되어 있어서 캐시 경로 C:\ProgramData\dbg\sym\ 로 다운로드된다.

  • lmvm : 모듈의 상세정보 확인. 빌드 날짜를 확인해서 pdb랑 매칭시킬수도 있다.

  • !sym noisy : 심볼 로드할때 발생하는 출력을 모두 확인하기 위해 사용. 심볼파일을 찾아가는 과정이 전부 출력된다.

  • !sym quiet : 심볼 관련 출력 전부 안보이게함

  • .reload /f : 모듈 정보 (심볼, dll) 리로드 force

  • .reload /i : 모듈 정보를 리로드하는데, 에러는 무시한다. 심볼 에러가 발생하는 경우 이 옵션을 사용해서 강제로 로드할 순 있지만, 잘못된 심볼을 가리킬 가능성이 있어서 사용하지 말고 다시 빌드하는게 좋다.

  • !analyze -v : 심볼을 다운로드 하고, 프로그램(덤프파일)을 분석해주는 명령어. 프로세스의 중요 글로벌 플래그, 크래시 사유, 콜스택, 크래시 위치 등 분석에 필요한 부분들의 정보를 모아서 보여준다.

  • .cxr : 컨텍스트 레코드를 복원하는 명령어 (다시 공부)

config command #

  • .sympath : 심볼 파일 경로를 출력하거나 지정할 수 있다. srv* 는 MS의 디폴트 심볼 서버를 가리키며, 세미콜론으로 경로를 계속해서 추가할 수 있다.
    ex) .sympath srv*;c:\custom_symsrv_1;d:\test_symbols
comments powered by Disqus