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) 나 심볼파일의 로컬 경로도 확인할 수 있다.
시스템에서 사용하는 일부 라이브러리들은 마이크로소프트 심볼 서버(
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