스레드 프로그래밍 하다가 Segmentation fault 났습니다.
게시판 찾아보다 보니 gdb를 이용해서 core를 보면 나온다고 해서 봤는데
이렇게만 나와서 어딜 봐야할지 잘 모르겠습니다.
만약 이렇게 나온다면 어떻게 디버깅 해야 좋을지요?
소스 올리는건 좀 무리인거 같아서 이렇게만 올립니다.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libstdc++.so.5...done.
Loaded symbols for /usr/lib/libstdc++.so.5
Reading symbols from /lib/tls/libpthread.so.0...done.
Loaded symbols for /lib/tls/libpthread.so.0
Reading symbols from /lib/tls/libc.so.6...done.
Loaded symbols for /lib/tls/libc.so.6
Reading symbols from /lib/tls/libm.so.6...done.
Loaded symbols for /lib/tls/libm.so.6
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
#0 0x420744fe in _int_free () from /lib/tls/libc.so.6
글쎄... 에러 메시지만 보고 답을 해주실 분이 계실지 잘 모르겠네요.
글쎄... 에러 메시지만 보고 답을 해주실 분이 계실지 잘 모르겠네요.
http//wiki.kldp.org/wiki.php/RTFM 참고하세요 )
세벌 https://sebuls.blogspot.kr/
흠...
저 정보만 갖고는 실제로 말씀드리기는 힘들 것 같구요...
실행 화일이 strip되어 있는 건 아니죠?
strip되어 있으면 debugging 정보가 많이 없어지니, strip하지 않도록 하시구요...
(file명령어로 확인할 수 있습니다...)
그리고 세그폴트는 대부분 NULL pointer 체크를 하지 않은 경우가 많습니다...
Be at a right place at a right time...
앗 두분 답변 감사합니다.
윈도우 프로그래밍 하다가
리눅스로 스레드 프로그래밍 할라니까 디버깅 문제때문에
힘드네요..
감사합니다...
글쎄요..
윈도우즈 쪽이나 리눅스 쪽이나 쓰레드 돌다가 죽는 경우는 특별한 경우가 없는한 쓰레드를 잘 죽지 않았거나, 이미 죽은 쓰레드의 포인터를 참조 할 경우 발생할 확률이 가장 높습니다.
쓰레기는 쓰레기통에...
종종 thread-safe 하지 않은 함수를 사용하면뻑이 잘 납니다.
종종 thread-safe 하지 않은 함수를 사용하면
뻑이 잘 납니다... ;-)
체크해보세요~
댓글 달기