Programming/C Win32 MFC2013. 12. 18. 01:55
한번쯤은 써봐야지하는 것 중에 하나
가장 강력하고 원초적인 디버깅 중에 하나로 printf()가 있다면
꽤나 상큼하고 스마트한 방법이라는데

assert()에서 비교문이 false 일 경우 강제종료 + 덤프를 한다고 한다.
일단 C/C++ 다 지원하는 듯..

NDEBUG가 정의되면 assert() 가 수행되지도 컴파일 되지도 않는다고 한다.
 #define NDEBUG // disable assert() calls

#include <assert.h>
void assert(scalar expression);
[링크 : http://linux.die.net/man/3/assert

[링크 : http://forum.falinux.com/zbxe/index.php?document_srl=408376&mid=C_LIB]
[링크 : http://www.cplusplus.com/reference/cassert/assert/]


---
2013.12.19
//#include <assert.h>
로 주석처리 하고 assert()를 부르면 컴파일 부터 배짼다 -_-
$ gcc c.c
/tmp/ccpSwySM.o: In function `main':
c.c:(.text+0x11): undefined reference to `assert'
collect2: ld returned 1 exit status 

#include "stdio.h"
#include "assert.h"

int main()
{
        assert(0);

        return 0;
}

음.. 우분투 12.04 LTS desktop에서 코어 덤프를 안하도록 해놔서 그런가..
덤프 파일이 생성되진 않았다.
$ gcc c.c
/tmp/ccpSwySM.o: In function `main':
c.c:(.text+0x11): undefined reference to `assert'
collect2: ld returned 1 exit status 

'Programming > C Win32 MFC' 카테고리의 다른 글

typeof  (0) 2014.03.11
const / pointer  (0) 2014.02.25
printf의 %s와 %S  (0) 2013.06.15
win32api - joystick 예제  (0) 2013.06.15
Windows IME  (0) 2013.02.14
Posted by 구차니