memory관련 error입니다. 한번 봐주시고 조언을...
일단 gdb를 이용하여 프로그램을 돌리면 다음과 같은 에러가 납니다.
Write index file.... <-- 여기까지 실행잘됨..
Program received signal SIGSEGV, Segmentation fault.
0x40098c25 in __libc_free (mem=0x8804270) at malloc.c3155
3155 malloc.c No such file or directory.
in malloc.c
(gdb) bt
#0 0x40098c25 in __libc_free (mem=0x8804270) at malloc.c3155
#1 0x08049bb4 in writePreKey ()
#2 0x08049a40 in makePreKeyNode ()
#3 0x08049203 in writeIndex ()
#4 0x08048df2 in startIndex ()
#5 0x08048ad5 in main ()
#6 0x40034507 in __libc_start_main (main=0x8048a60 , argc=1,
ubp_av=0xbffffa94,
init=0x8048738 <_init>, fini=0x8049f50 <_fini>,
rtld_fini=0x4000dc14 <_dl_fini>,
stack_end=0xbffffa8c) at ../sysdeps/generic/libc-start.c129
(gdb)
저의 생각에는 memory를 잡았다가 free를 할려고 할때
그부분의 memory가 없는 주소이거나 할당 영역을 벗어났을 경우인것
같거든요...
그래서 버퍼관련해서 버퍼크기보다 조금 작을때 버퍼내용을 비우고
free를 시켜봤지만 같은 부분에서 error가 발생합니다.
맘같아서는 코어 파일을 올리고 싶지만
코어파일의 크기가 약 1G정도라서.....
위의 gdb message만을 가지고는 정보가 모자랄것 같지만
고수님들의 의견을 듣고 싶습니다.
그럼 수고하셔요~~~
backtrace만으론 분석이 불가능합니다.[냉무]
..........
Re^2: backtrace만으론 분석이 불가능합니다.[냉무]
죄송합니다만..
어떤방법으로 접근해야할지를 모르겠내요...
gdb man page랑 나우누리 리눅스동에 gdb강좌를 봐도
이번 에러에 적용할만한 방법이 없어서리...'
혹시 실례가 아니라면
gdb관련 문서를 링크시켜주시면 고맙겠습니다만....
관심가져 주셔서 감사합니다.//
소스를 보지 않고서는 잘 모르겠군요(냉무)
..
Re^3: backtrace만으론 분석이 불가능합니다.[냉무]
http//sources.redhat.com/gdb/current/onlinedocs/gdb_toc.html
댓글 달기