Windows/Windows Debugging 4

Display Memory - da, db, dc, dd, dD, df, dp, dq, du, dw

Memory Display 명령어들에 대해 알아보겠습니다.말 그대로 디버깅 중에 메모리 상태를 보여주는 명령어입니다.  windbg 도움말에는 위와 같이 설명되어있습니다.  하나씩 살펴보겠습니다.- 예제로는 CString(CHAR) 형태인 "CwonjaykDoc"라는 문자열을 활용했습니다.- 메모리 주소 : 0x00093a80- 디버깅시 자주 쓰일만한 것만 진하게 처리했습니다. 1. da : ASCII 문자열의 형태로 메모리 출력 2. db : 바이트 단위 배열로 보여주고 ASCII로 해석해서 출력 3. dc : Double-Word 단위로 메모리를 보여주고 ASCII로 해석해서 출력 4. dd : dc와 같지만 ASCII 해석 출력은 제외 5. dD : 메모리를 Double-Precision 소수점 형..

강제 BSOD로 전체덤프 저장하기

Process Hang이나 Application Error가 발생했을 때 Hang/Error가 발생한 프로세스의 덤프만으로도 해결이 가능한 경우들이 있지만, 간혹 다른 프로세스에 의해 발생한 경우라면 프로세스 덤프 만으로는 원인을 찾기가 어려워집니다. 이럴 때, 문제 원인을 찾기 위해 전체 덤프가 필요한데요 전체 덤프를 얻기 위해 BSOD(블루스크린)를 발생시키는 방법은 아래와 같습니다.1. 키보드 이용2. OSRonline의 BANG! 활용- https://www.osronline.com/article.cfm?article=1533. Sysinternals의 Not My Fault 활용- http://download.sysinternals.com/files/notmyfault.zip 이 중 2번 방법인..

!analyze -v

제 컴퓨터에서 잠자고 있는 덤프 파일을 하나 열어보도록 하겠습니다. 덤프 파일을 열어보면 가장 먼저 보이는 화면은 아래와 유사합니다.  - 덤프 파일의 위치, 덤프 종류 (위 예제에서는 커널덤프 입니다.)- 덤프가 발생한 OS- 덤프 발생 시점의 시간 (4월 19일 13시 24분 41초)- 부팅 이후 동작시간 (2시간 32분)- 버그체크 번호 (BugCheck 3B, BSOD의 종류) 위 화면을 보면, !analyze -v 가 하늘색으로 써져있음을 확인할 수 있습니다.BSOD에 대한 자세한 정보를 확인할 수 있는 명령어입니다. 눌러보죠  내용들이 길기 때문에 우선 여기까지만 자르고 요런 내용들이 나오게 됩니다.가장 먼저 나타나는 부분은 버그체크 번호에 대한 설명입니다.- 시스템 서비스 루틴이 실행 중에 ..

덤프파일 위치

윈도우 디버깅을 하는 방법은 크게 두 가지로 라이브 디버깅과 크래시 덤프 디버깅이 있습니다.- 라이브 디버깅 : 코드를 실행시키면서 디버깅을 동시에 진행하는 방법- 크래시 덤프 디버깅 : 윈도우가 스스로 BSOD(Blue Screen of Death)가 발생한 시점에 덤프 파일을 생성(커널모드)하거나 유저모드 오류가 발생했을 때 생성한 덤프 파일을 디버깅 하는 방법 이 포스트에서는 크래시 덤프 디버깅을 위한 크래시 덤프를 수집하는 방법을 설명하도록 하겠습니다.  유저모드 덤프 수집 방법프로세스 익스플로러를 이용해 덤프를 수집하는 방법입니다. - 프로세스 우클릭 -> Create Dump -> Create Mini or Full Dump를 클릭- 프로세스 익스플로러가 존재하는 폴더에 덤프 파일이 생성됩니다..