C, C++, MFC
VC++ 소스로 이동되는 TRACE 출력
수동애비
2018. 10. 31. 16:40
반응형
1.요약
이전에 제가 LHCTRACE라고 해서 debug창에 trace된 내용을 더블클릭하면 소스의 위치로 찾아가는 매크로를 만든 적이 있습니다.(팁 게시판 참조)
하지만 이미 Visual C++의 CRT에 포함되어 있다는 걸 이제야 알았습니다.
2.본문
ANSI CRT에는 TRACE와 같은 기능이 없지만 Visual C++에는 _RPTn 들과 _RPTFn 들이 있습니다. 여기서 _RPTFn 을 주목할 필요가 있는데 _RPTFn 은 다음과 같은 형태의 매크로들을 말합니다.
_RPTF0(reportType, format); _RPTF1(reportType, format, arg1); _RPTF2(reportType, format, arg1, arg2); _RPTF3(reportType, format, arg1, arg2, arg3); _RPTF4(reportType, format, arg1, arg2, arg3, arg4);
reportType은 다음 값중 하나를 넣으시면 됩니다.
_CRT_WARN _CRT_ERROR _CRT_ASSERT
단순히 trace의 용도로 사용하신다면 _CRT_WARN을 사용하시면 됩니다.
나머지 인자들은 TRACE에 넣어주는 인자들과 동일합니다.
역시나 _DEBUG 버전에서만 효과를 발휘하는 매크로 입니다.
다음과 같이 사용하시면 됩니다.
#include <crtdbg.h> ... _RPTF2( _CRT_WARN, "하나만 더..%s %s", "주면 ", "안돼요? \n");
3.예제
4.참고
Debugging Windows Programs, Strategies, Tools, and Techniques for Visual C++ Programmers p.133