[완료]gcc코딩 후 실행시 에러나요
소켓통신입니다.
서버쪽에서 이런 에러가 나오는데
*** glibc detected *** ./ser: free(): invalid next size (fast): 0x0804b048 ***
======= Backtrace: =========
/lib/libc.so.6[0x85aac1]
/lib/libc.so.6(cfree+0x90)[0x85e0f0]
./ser[0x8048f17]
/lib/libc.so.6(__libc_start_main+0xe0)[0x807390]
./ser[0x80486c1]
======= Memory map: ========
00720000-0072b000 r-xp 00000000 fd:00 10062748 /lib/libgcc_s-4.1.2-20070925.so.1
0072b000-0072c000 rw-p 0000a000 fd:00 10062748 /lib/libgcc_s-4.1.2-20070925.so.1
007d2000-007ed000 r-xp 00000000 fd:00 10062723 /lib/ld-2.7.so
007ed000-007ee000 r--p 0001a000 fd:00 10062723 /lib/ld-2.7.so
007ee000-007ef000 rw-p 0001b000 fd:00 10062723 /lib/ld-2.7.so
007f1000-00944000 r-xp 00000000 fd:00 10062724 /lib/libc-2.7.so
00944000-00946000 r--p 00153000 fd:00 10062724 /lib/libc-2.7.so
00946000-00947000 rw-p 00155000 fd:00 10062724 /lib/libc-2.7.so
00947000-0094a000 rw-p 00947000 00:00 0
08048000-0804a000 r-xp 00000000 fd:00 3899872 /home/jungo84/programing/0112/server/ser
0804a000-0804b000 rw-p 00001000 fd:00 3899872 /home/jungo84/programing/0112/server/ser
0804b000-0806c000 rw-p 0804b000 00:00 0 [heap]
b7e00000-b7e21000 rw-p b7e00000 00:00 0
b7e21000-b7f00000 ---p b7e21000 00:00 0
b7f85000-b7f87000 rw-p b7f85000 00:00 0
b7f98000-b7f99000 rw-p b7f98000 00:00 0
b7f99000-b7f9a000 r-xp b7f99000 00:00 0 [vdso]
bf984000-bf999000 rw-p bffeb000 00:00 0 [stack]
중지됨
이건 무슨에러죠?
동적할당 문제인거 같습니다.
흔히 저런 에러들은 point형태로 데이터를 설정한다음 malloc(), calloc()으로
메모리 공간을 잡지 않은 point를 free() 시킬때 나옵니다.
가령
double *a;
free(a);
이렇게 코딩을 하시고 컴파일을 하시면 위와 같은 에러를 보게 되실겁니다.
이런 에러는 invalid pointer 라고 에러가 나옵니다.
즉, 유효하지 않은 영역을 free()시킨것으로 보여집니다.
감사합니다.
감사합니다.
free때문에 에러가 생겼었네요..
free 오류입니다.
나왔다가 안 나왔다가 하는 간헐적 증상으로 반복되면, free() 오류가 맞습니다.
segmentfault 라고 나오기도 하고 free()가 엉뚱한 곳을 치게 되면 저런 메시지로도 나오더군요.
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
댓글 달기