[완료]디버깅 관련해서 질문 드립니다.
글쓴이: paeksj98 / 작성시간: 월, 2008/08/18 - 6:16오후
기본적인 디버깅 관련 질문 드립니다.
#define aprint() if (DEBUG_MODE) { Uart3_Printf( "[%04d] %s(),%s\n\r", __LINE__, __func__, __FILE__); }
이런경우
aprint(); 호출해서 쓰면 문제가 없습니다.
꼭 필요한 기능인데 아래부분이 문제가 있습니다.
#define aprint(msg)
if (BSJ_DEBUG_MODE)
{ Uart3_Printf(msg);
Uart3_Printf( "[%04d] %20s() %s\n\r", __LINE__, __func__, __FILE__); }
apinrt("%s", strA);
이런식으로 사용하고 싶은데 이렇게는 안되네요.
strA를 포함해서 찍을 경우도 있고..필요 없으면 찍지 않고...
line, func, file는 항상 찍히고 더필요한 내용이 있으면 strA의 내용을 포함해서 찍고 싶은데 잘안되네요.
어떤식으로 처리하는 방법이 있을 듯 한데 좋은 방법이 있으면 알려주세요...^^
Forums:
#define aprint(msg) \{ if
뭐 대충 이런식이면 쉽게 해결될터이고, 이게 아니라면, 방법은 aprint( arg1, arg2 )로 받아서, va_arg등의 stdarg.h에 있는 함수들을 사용해서 구현해서 사용하셔야 할 것이구요.
時日也放聲大哭
時日也放聲大哭
참고로 질문자가
참고로 질문자가 사용하시는 define 문은 상당히 위험합니다. 소스에서
의 경우 의도하지 않은 결과를 냅니다.
.
제 코멘트를 삭제 합니다. 잘못된 내용이었던 것 같아서...
__VA_ARGS__ 라는 것을 사용하는 것 도 있는데,
이렇게 할 경우
aprint("a");
aprint();
모두 되지만, 예상치 않은 결과가 나왔네요..
윗분들께서 조언해 주신것과 함께, 별도의 매크로를 사용하시는... ToT
-------------------------------------------------
$yes 4 8 15 16 23 42
댓글 달아주신분들 모두 모두 감사합니다.
감사합니다...^^
댓글 달기