SW 개발

dropbear / dbclient : debug (log) 메시지 보이기

. . . 2014. 8. 29. 09:39
반응형

Debug 메시지보기

Dropbear 나 dbclient 를 디버그 빌드 할 필요성이 있었다.

그냥 기본옵션으로 빌드를 하게 되면, dropbear / dbclient 모두 verbos 옵션 (디버깅메시지) 가 비활성화 된 상태에서 빌드가 되어 디버깅 메시지를 볼수 없다.

Debug 빌드하기

configure 가 끝나고난 후make 할때 다음과 같은 옵션을 추가 하면된다.

make -DDEBUG_TRACE

이때 모든 소스를 clear 한후 재빌드 해야한다.

Debug 메시지가 보이지 않을경우

위처럼 디버그 빌드를 하였다면, dbclient 나 dropbear 에 –v 옵션(verbos) 이 생겼을 것이다. 만약 해당 옵션으로 실행시에도 디버그 메시지가 보이지 않는다면…

직접 소스에서 알맞게 수정을 한다.

Dropbear 에서 디버그 메시지를 뿌리는 api 는 다음과 같다.

dbutil.c

#ifdef DEBUG_TRACE
void dropbear_trace(const char* format, ...) {

    va_list param;

    if (!debug_trace) {
        return;
    }

    va_start(param, format);
    fprintf(stdout, "TRACE (%d): ", getpid());
    vfprintf(stdout, format, param);
    fprintf(stdout, "\n");
    va_end(param);
}
#endif /* DEBUG_TRACE */

지금 개발하고있는 시스템의 경우 stderr 로 할 경우 디버깅 메시지가 잘 나오지 않는 경우가 발생하였다.

그래서 stdout 으로 변경을 하였고, 정상동작됨을 확인하였다.

만약 syslog 쪽으로 디버깅메시지를 뿌리고 싶으면 위의 함수를 적절히 수정하면된다.

반응형