레이블이 windbg인 게시물을 표시합니다. 모든 게시물 표시
레이블이 windbg인 게시물을 표시합니다. 모든 게시물 표시

2011년 6월 22일 수요일

콜스택확인

콜스텍확인  명령어

k

View>Call Stack

 

콜스택은 아래가 시작점이고 위가 끝접임.

 

파라미터 까지 보려면 kb 명령을 사용함.

kb,kp,kv,kn,kf 등이 있음.

드라이버 태그 찾기와 덤프에서 특정 문자열이 포함되어있는 메모리 찾기

드라이버 태그 찾기와 덤프에서 특정 문자열이 포함되어있는 메모리 찾기

갱주니 블로그(AiWisdom) :: 네이버 블로그

커널모드디버깅에서 사용자모드 프로세스로 컨텍스트 스위칭

 

[한겨레] jeongmoonoh님의 블로그입니다. :: 커널모드디버깅에서 사용자모드 프로세스로 컨텍스트 스위칭

Windbg 원격디버깅

WinDbg help 에도 자세히 설명되어있는 내용이지만. 정리차원에서 간만에 포스팅합니다.

WinDbg 하나만 있으면 대부분의 환경에서 "디버깅" 이란 귀찮은 작업이 가능하죠.

보통 커널 디버깅에만 많이 사용들 하는데 유저모드 네이티브 어플리케이션 디버깅시에도

특히 리모트에서 실행중인 프로그램을 디버깅하는데 매우 유용합니다.

디버기(디버깅을 당할 컴퓨터)에 WinDbg 를 설치하고 (바이너리를 복사만 해도 됩니다!)

아래의 명령을 실행합니다. 이 명령을 실행하면 WinDbg 가 네트워크 서버로 동작하는 겁니다.

WinDbg.exe -server tcp:port=12345

명령이 잘 실행되었다면 빈 WinDbg 창이 뜨는데 여기서 디버깅할 프로그램을 실행하거나 실행중인

프로세스에 Attach 해도 됩니다.

( 이미 실행중인 프로세스를 디버깅 타겟 프로세스로 지정하려면 명령줄 뒤에 -p PID 형태의 옵션을 넣어도 되구요. )

예들들어 File -> Open Executable (Ctrl + E) 를 눌러서 notepad.exe 를 디버거로 실행시켜 두고, 디버거로 실행한 notepad.exe 를 원격에서 디버깅해 봅시다!!

디버거(디버깅을 하는 컴퓨터) 쪽에는 당연히 WinDbg 가 설치되어있어야 겠죠.

디버거에서 아래의 명령을 실행하면 디버기(Debuggee 라는 이름을 쓰는 컴퓨터. 당근 아이피로도 되죠)에

접속이 되고, 디버거에서 실행한 WinDbg 의 명령들이 그대로 디버기쪽에서 동작합니다.

WinDbg.exe -remote tcp:server=Debuggee,port=12345

명령이 잘 실행되었으면 마찬가지로 WinDbg 가 실행될 것입니다.

디버기에서 실행중인 WinDbg 화면도 아마 디버거쪽에서 실행중인 WinDbg 의 출력 내용과 동일할 것입니다.

이제 디버거쪽에서 필요할 심볼/소스 경로 설정해서 디버깅하면 되죠.

WinDbg 는 더욱 더 다양한 디버깅 시나리오를 지원하는데요. 자세한 내용은 WinDbg 의 도움말을 참고하시면 됩니다.

도움말의 Remote Debugging 으로 색인해 보시면 나옵니다.

출처 http://somma.egloos.com/4545854

Windbg 실행방법 3가지

1. Open Executable

프로그램 시작시점에부터 디버깅을 하려고 할 때 사용함.

File>Open Executable

 

2. Attach to a Process

절대로 종료되면 안되는 프로세스를  또는 서비스를 디버깅해야 할 때 사용한다.

Nonivasive  옵션을 체크하거나  qd 명령을 이용하면,  프로세스의 내부 정보는 확인할수 있다. 프로세스를 멈추거나 동작을 바꾸거나 하는 제어는 바꿀수 없음.

File>Attach to a Process

 

3. 문제발생시 자동으로 실행

Windbg –I

2011년 6월 21일 화요일

심볼경로(Symbol File Path) 설정

1. 운영체제 심볼로드(경로지정)

File>Symbol Search Path or Ctrl+s

SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols

SRV 는 심볼 서버를 사용한다는 의미.

다운받을심볼경로

심볼서버의 URL

 

2. 운영체제 심볼URL  경로가 생각나지 않을 때

명령창에서 .symfix c:\websymbols

 

3. APP심볼경로 추가하기.

.sympath+ c:\Mysymbols

“+"를 꼭 붙여줘야함 안붙여주면 기존에 있던 경로는 모두 삭제됨.

 

 

경로 설정후  .reload 는 잊지말길..^^

2010년 11월 5일 금요일

Crash 발생시 windgb 자동실행

windbg -i 를 하면 레지스트리
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
에 기록되고

크래쉬가 발생시 자동으로 windbg가 실행된다.

2010년 9월 29일 수요일

WinDbg 사용 핸들릭 잡기

[사용예]
notepad.exe 가 핸들릭을 발생시키는 우리의 프로세스라고 가정합니다.

notepad.exe 를 실행하고 WinDbg 의 Attach Process 로 attach 합니다.
이 상태에서 !htrace 를 사용하면 다음과 같이 오류 메시지가 발생합니다.

0:001> !htrace
Handle tracing is not enabled for this process. Use "!htrace -enable" to enable it.

하지만 친절하게도 사용할 수 있는 방법을 가르쳐 주네요.
Application Verifier 없이도 -enable 옵션을 사용하면 동작합니다.

0:001> !htrace -enable
Handle tracing enabled.
Handle tracing information snapshot successfully taken.

이 때부터 사용하는 핸들은 내용 추적이 가능합니다.
g 로 진행시키고 notepad 에 몇자 적어놓고 나서 Break 를 잡습니다.

이제 !htrace 명령어를 수행하면 그동안 Open/Close 된 핸들의 정보가 나옵니다.
가장 유용한 정보는 Open/Close 가 수행된 콜스택을 보여준다는 부분입니다.
어떤 API 에 의해 Open 된 것인지 보이기 때문에 핸들의 타입을 정확히 알 수 있고
콜스택이 보이기 때문에 어떤 목적으로 어떤 행위를 하고 있었다는 것이 확인됩니다.

0:001> !htrace

주의할 점은 같은 핸들에 대해서 Open 되고 Close 된 것이 모두 나오기 때문에
차근차근 확인해 보셔야 합니다.

이 정보만 가지고도 많은 도움이 되지만 핸들이 닫히지 않고 계속 남아 있는 릭
상황을 확인할 때는 -diff 옵션을 사용하면 더 좋습니다.

-diff 옵션을 사용하면 -enable 을 실행할 때 snapshot 잡힌 정보와 -diff 할 때의
정보를 비교하여 닫히지 않고 열려있는 핸들만 보여줍니다. 핸들릭을 잡는 상황이면
이렇게 보여지는 핸들중에서 문제의 핸들을 찾는 것이 훨씬 쉬울 것입니다.

0:001> !htrace -diff

출처 : GreeMate의 끄적끄적 :: [WinDbg 사용] 핸들릭 잡기

http://www.driveronline.org/bbs/view.asp?tb=tipbbs&GotoPage=1&s_bulu=title&s_key=windbg&no=92

2010년 9월 20일 월요일

Windbg 설치 및 연습

1.환경변수에 아래 경로 추가.

C:\Program Files\Debugging Tools for Windows (x86)

2. Windbg 실행

3. OS 심볼 경로 설정

^S 또는 file Symbols Path 에 경로를 삽입.

OS SRV*d:\osSymbols*http:/msdl.microsoft.com/download/symbols
App  

4. File>Open Executable 를 클릭해서 디버깅할 파일 선택(Sample : Myapp.exe)

Windbg 설치위치가 있는 곳.

Windbg 설치위치가 있는 곳.

은수네집! :: 네이버 블로그

2010년 9월 15일 수요일

Programming world :: Windbg 를 이용한 디버깅 방법

Programming world :: Windbg 를 이용한 디버깅 방법

WinDbg 사용법 기초

WinDbg 사용법 기초가 있는 곳.

WinDbg

Windbg 의 기초적인 사용법이 있는 곳

Windbg 의 기초적인 사용법이 있는 곳.

deguls의 궁금하니? :: [펌] Windbg 를 이용한 디버깅 방법

TaeHoon Cuya :: 네이버 블로그

TaeHoon Cuya :: 네이버 블로그

김태환 팬클럽 : Windbg 를 이용한 디버깅 방법

김태환 팬클럽 : Windbg 를 이용한 디버깅 방법

J.K's Life And Story :: [펌] WinDbg 사용법2

J.K's Life And Story :: [펌] WinDbg 사용법2

WinDBG 디버깅 하는 방법 | 마을 :: 컨텐츠 상세보기

WinDBG 디버깅 하는 방법 마을 :: 컨텐츠 상세보기

Study Log of phiDel :: WinDBG와 VirtualBox를 사용한 원격 디버깅 설정

Study Log of phiDel :: WinDBG와 VirtualBox를 사용한 원격 디버깅 설정

김태환 팬클럽 : Tool/Windbg

김태환 팬클럽 : Tool/Windbg