본문 바로가기

4.개발 및 운영 환경

디버깅툴 dbgview

dbgview는 sysinternals에서 만든 아주 유명한 툴이다. 지금은 M$에 소속되어 있다. dbgview는 디버깅 메시지를 보여주는 프로그램이다. 그렇다고 해서 debug모드에서만 보이는 것이 아니라 releas에서도 다음과 같은 API를 사용하면 메시지가 보인다.

Writer: http://ospace.tistory.com/(ospace114@empal.com) 2008.08.13

디버깅 메시지 생성하는 API

아래는 M$ 홈페이지에서 추출한 내용이다.

Under Windows 95, 98, and Me _DebugView_ will capture output from the following sources:

-   Win32 **OutputDebugString**
-   Win16 **OutputDebugString**
-   Kernel-mode **Out\_Debug\_String**
-   Kernel-mode **\_Debug\_Printf\_Service**

Under Windows 2000, XP, Server 2003 and Vista _DebugView_ will capture:

-   Win32 **OutputDebugString**
-   Kernel-mode **DbgPrint**

간단히 정리하면 윈도우즈 98이하와 윈도우즈 2000이상으로 구분된다. 지금은 거의 윈도우즈 2000이상이므로 OutputDebugStringDbgPrint를 사용하면 된다. 커널은 거의 사용할 일이 없으므로 OutputDebugString 을 사용하면 된다.
정확히 OutputDebugString 에 대해 말하면 두가지 버전이 있다. Ascii와 Unicode 버전이 있다. 각가 OutputDebugStringAOutputDebugStringW 이다. 이는 컴파일 타임에 무엇을 사용할지 판단해서 사용하게 된다.

이전 버전에서는 OutputDebugStringW 을 사용함에 있어서 버그가 있어 dbgview에서 보이지 않았다. 지금은 해결되었지만, 간혹 OutputDebugString에 의해 메시지가 보이지 않는다면 강제로 OutputDebugStringA 으로 지정해서 사용하면 잘 보일 것이다.
그러나 영어만 사용해야된다는 문제점이 있다. ㅡ.ㅡ;

dbgview는 원격 리포팅이 가능하다. 방법은 dbgview을 서버형태로 동작하게 하는 것이다. 이는 dbgview 도움말에서 실행 옵션을 찾아보면된다. 아니면 다음과 같이 도스창에서 입력하면 도움말창이 뜬다.

dbgview -h

그 옵션에서 server관련 옵션이 있다. 물론 다른 옵션들도 많지만... 일일히 dbgview 서버 사용할때마다 옵션 지정하기가 귀찮아서 바로가기 링크를 만들어서 실행하게 했다.

아래 Download 링크에 있는 압축파일 안에 "DbgView server.lnk"파일 있다.

해당 바로가기 링크의 등록정보를 보면 대상이라는 항목에 다음과 같은 내용이 있을 것이다.

"Dbgview.exe" /t/c /a /n /l debugview.log /m 10 /w

위의 옵션 내용은 앞에서 도움말 창과 비교해보면 쉽게 알 수 있다. 이렇게 dbgview 서버를 실행하면 원격에서 어떻게 할깔?

원격에서도 dbgview를 실행하고 메뉴에서 "Computer">"Connect"를 누르거나 단축키로 "Ctrl+R"를 누르면 아래와 같은 창이 보인다.

Computer에 IP주소를 입력하면 알아서 접속하게 되고 일반적인 dbgview사용과 동일하다.

DebugView.zip
295.2 kB

참고

http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

dbgview 도움말

반응형