디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승 디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승 ※ 초보자를 위한 Linux & Unix C 프로그래밍(한빛미디어) 18장
■ gdb 간단하게 사용해보기 (1/4) 먼저 다음과 같은 버그가 있는 usedebug.c 파일을 작성해보세요.
■ gdb 간단하게 사용해보기 (2/4) [프롬프트]$ gcc –g usedebug.c –o debug [프롬프트]$ gdb usedebug gdb가 실행되면 run을 입력해보세요. run은 gdb안에서 프로그램을 실행시키는 명령어입니다. ※ list를 입력하면 소스 내용을 볼 수 있습니다.
■ gdb 간단하게 사용해보기 (3/4) 변수 i의 값으로 임의의 값이 지정되어 있습니다. 감소 시키면서 1까지 더하는 것입니다. 1까지 더해야 하는 종료 조건을 주지 않았으므로 이러한 문제가 발생한 것입니다.
■ gdb 간단하게 사용해보기 (4/4) whatis는 변수의 데이터형을 확인하는 명령어입니다. print는 변수의 값을 보기 위한 명령어입니다. set variable 명령어를 이용하여 변수의 값을 바꿀 수 있습니다. ※ gdb를 종료할 때엔 quit를 입력하면 됩니다.
■ 단계별로 실행하기 (1/4) 단계별로 실행하기 위한 명령어에는 step과 next가 있습니다. 우선, stepdebug.c 파일을 작성해보세요. 1줄 2줄 3줄 4줄 5줄 6줄 7줄 8줄 9줄 10줄 11줄 12줄 13줄 14줄 15줄 [~]$ gcc –g stepdebug.c –o debug [~]$ gdb stepdebug 16줄 17줄 18줄
■ 단계별로 실행하기 (2/4) 8번째 줄을 정지점으로 설정하고 프로그램을 실행시키면 정지점에서 멈춥니다. 이때 step 명령을 실행시키면 다음 단계인 sum 함수 내의 첫 번째 문장이 실행됩니다.
■ 단계별로 실행하기 (3/4) 반면에 next 명령을 이용해 다음 단계로 나갈 경우에는 Sum 함수 안으로 들어가지 않고 main 함수의 다음 문장이 실행됩니다. 즉, 함수 호출 문장을 단순히 하나의 문장으로 인식하여 처리하는 것입니다.
■ 단계별로 실행하기 (4/4) 앞서 살펴본 step과 next는 한 단계씩 시행되는데, 만약 여러 단계를 실행하고 싶다면 단계 수를 지정해주면 됩니다.
감 사 합 니 다