본문 바로가기

VC에서 pseudo 디버깅 VS에서 유용한 디버깅 팁들이 많다. 그중에 pseudo-register을 사용하는 방법이 있다. 작성: http://ospace.tistory.com/(ospace114@empal.com) 2009.12.23 pseudo-register 먼저 pesudo-register가 무엇일까? pesudo-register는 watch 윈도우에서 보이는 실제 변수가 아닌 가짜변수이다. 이를 통해서 기타 여러가지 디버깅 정보를 얻을 수 있다. 해당 pesudo-register는 VisualStudio 버전에 따라서 지원이 안될 수 있으니 주의! @ERR, hr 이는 최종 win32 에러 값을 출력한다. 해당 에러 메시지 숫자가 아니라 사람이 읽을 수 있는 결과를 표시해준다는 점에서 훌륭하다. hr은 윈도우의 HRES.. 더보기
매크로를 조건에 따라 실행하기 이걸 사용하는 대부분는 디버그 모드에서는 해당 메크로를 사용하고 릴리즈 모드에서는 사용하지 않을려고 하려는 경우이다. 이는 MFC의 TRACE 매크로를 참고하였다. 생각보다는 단순하다. 그러나 알기 전까지는 생각해내기가 쉽지않다. 작성일: 2009.08.14 (http://ospace.tistory.com/), ospace114@empal.com 코드 실제 코드를 보자. ASSERT 매크로를 사용한다고 가정하자. 그래서 디버그 모드일 경우에만 ASSERT 기능을 수행하고, 그렇지 않으면 ASSERT 매크로가 작동하지 않도록 한다. #ifdef _DEBUG #define ASSERT(s) assert(s) #else #define ASSERT(s) ((void)0) #endif 위 코드에서 ((void)0.. 더보기
리다이렉션이용한 디버깅 메시지 출력 단순히 문자열 하나만 출력하는 디버깅 메시지는 단순한다. 그렇지만 디버깅을 하다보면, 변수의 값이나 포인터 등을 여러 형식의 포멧에 맞춰 출력하게된다. MFC를 사용한다면 CString에서 Format()를 사용하면되고, 일반 c라면 sprintf()등을 사용하면된다. 또는 MFC에서 TRACE 매크로를 사용해도된다. c++에서 MFC의 CString은 별로 사용하고 싶지않거나 사용할 수 없는 경우라면 어떻게 될까? sprintf()를 이용할까? 그러기에는 c++답지 않고 세련되지도 않고... 그래서 c++에서 cout등에 사용하는 리다이렉트(" 더보기
디버깅툴 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 **OutputD.. 더보기

반응형