※ 본 글은 인터넷에서 찾은 내용을 재편집한 겁니다. 원문은 참고사이트의 주소를 확인하세요.
Windows 에서 VisualStudio(이하 VS)로 개발하다보면 디버깅모드에서 중단점을 걸어서 버그를 잡곤 합니다. 하지만 종종 이러한 디버거를 활용하여 잡을 수 없는 버그를 만나게 된다.
특히나 이것저것 타이밍과 관련된 버그는 잡기가 참~~ 힘들죠. 디버깅모드에서는 정상적으로 처리가 되는데 실행만 시키면 뻑뻑뻑....ㅠ
그래서 이런 단점을 보완하는 실시간 디버깅 프로그램이 많다고 한다.
그 중에 하나인 DebugView를 알아보겠다.
DebugView 4.79 [ 내려받기 ]
DebugView는 Win32개발환경에서 디버그 메시지 확인용 함수인 OutputDebugString의 결과를 따로 모아서 보여주는 유틸리티.
로컬시스템 뿐만아니라 네트워크상의 시스템의 프로그램도 디버깅을 볼 수 있다고 한다.
DebugView는 VS에서 Output창에 나타나는 정보들을 실행파일을 실행시킨 상태에서 확인할 수 있다. 몇가지 제약사항은 있다.
1. VS를 디버깅모드로 실행했을 때는 메시지를 보여주지 않는다. VS의 디버거가 메시지를 다 받아버린다. Ctrl+F5 로 실행하자.
2. DebugView가 두 개 이상 실행되어 있으면 한 프로그램에서만 디버깅이 가능하다. 다시 연결하려면 [Computer] - [Connection Local] 메뉴 선택.
3. .NET에서는 OutputDebugString()이 있지만 System.Diagnostics.Trace.Write() 함수를 사용한다. 허나 System.Diagnostics.Debug.Write()를 사용하면 Release에서는 메시지가 보이지 않는다. MFC에서 TRACE()도 마찬가지이다.
실행 초기화면입니다.
실행환경
Winodws 7 64bit
VS와 DebugView 연결하기.
VS의 도구 -
참고 소스
{
char cBuf[2048];
ZeroMemory(cBuf, sizeof(cBuf));
va_list vlMaker;
va_start(vlMaker, szFormat);
vsprintf_s(cBuf, szFormat,vlMaker);
va_end(vlMaker);
::OutputDebugStringA(cBuf);
}
※ 주의사항\
DebugView를 사용할 때에는 Visual Studio에서 F5로 실행시키면 안된다.
DebugView로 와야할 메시지를 VS의 Debug가 가로채기때문이다. ctrl+F5 추천.
DebugView에서 메시지 필터링하기.
참고사이트
http://www.4four.us/article/2008/06/message-filtering-in-debugview
http://blog.daum.net/pg365/45
http://eocsdev.blog.me/150079648311
http://blog.naver.com/superchangho/70048122632
http://technet.microsoft.com/ko-kr/sysinternals/bb896647%28en-us%29.aspx
http://yegam400.tistory.com/444
http://tongins.blog.me/80113638327
'Programming > VC++' 카테고리의 다른 글
Visual Studio 편집기에 스킨 적용하기 (0) | 2012.03.02 |
---|---|
정적메모리할당/동적메모리할당 (0) | 2012.03.01 |
[MFC] 버튼 이쁘게 꾸며보자..CButtonST v3.9 (MFC Flat buttons) (0) | 2011.10.13 |
[MFC] MFC 간단하지만 알찬 TIP (0) | 2011.10.13 |
[MFC] Windows 프로그램이 종료될 때 (0) | 2011.10.13 |
댓글