gdb 행 점프 및 Segmemtation fault
안녕하십니까.
리눅스 초보자입니다.
이상하게 디버깅할때 행 점프현상이 있습니다. 현재 정상적이 프로그램이구요. 큰 시스템에서 사용되는 거라 100% 제가 뭐가 빠트린거 같습니다.
이런 현상을 경험하신 분이 계시는지. 또 어떤 내용을 제가 이해 못했는지 알고싶습니다.
내용은 아래와 같습니다.
//----------------------------------------//
기존의 프로그램을 일부( 방어코드 정도? ) 수정하고 make 하였습니다.
테스트진행을 위해 TARGET 명만 _test 추가 했구요.
gdb 실행을 하고, 해당 함수에서 break 잡았습니다.
next 하고 넘어가는데 100라인에서 했다면 몇개 라인에서 점프에서 아래 라인으로 떨어집니다.
즉,
(gdb) n
100 string key = "";
(gdb) n
107 sprintf( key, "test");
물론 100 ~ 107 라인 사이에 로직이 있다는 거죠.
아 그리고 jump 를 사용하여 사이로 갔을때 Sementaion fault 가 떨어졌습니다. readdir64() 라는군요.
if( (dirp = opendir(g_ftpFileDir)) == NULL ) 이후
while((direntp = readdir(dirp)) !=NULL) 들어가는데
opendir에 제가 조건문 넣었고 while은 손대지 않았습니다.
참고로 사용하는 lib성 파일들은 타 폴더에 있고 makefile에 경로명으로 지정되어 있습니다.
댓글 달기