19. 오류 수정 방법(Debugging hints)

사용 소프트웨어를 개발할 때 드는 시간의 90%는 오류를 수정하고 검사하는데 들어간다. 따라서 처음에 code를 잘 쓰는 것이 얼마난 중요한지 알 수 있다.

그러나 여전히 여기저기서 오류 bugs를 볼 수 있다. 다음은 이 오류를 알아내는 방법이다.

쓸만한 compiler의 선택 사양 (Useful compiler options)

대부분의 Fortran compiler에는 원할 때 작동하도록할 수 있는 선택 사양 들이 있다. 다음은 Sun Fortran 77 compiler의 compiler 선택 사양이지만 대부분의 compiler에 (글자는 다르더라도)비슷한 선택 사양이 있다.
-ansi
프로그램 중에 표준 Fortran 77 확장안이 아닌 것이 있으면 경고한다.
-u
type에 관한 implicit 규칙을 무시하고 모든 변수를 초기에 선언하지 않은 것으로 간주한다. compiler에 이런 선택 사양이 없다면 다음과 같은 선언을 각 (부)프로그램의 처음에 더하면 같은 효과를 볼 수 있다.
      implicit none (a-z)
-C
배열의 끝을 확인한다. 배열 바깥의 원소를 사용하고자 할 때 이를 알아낸다. 그러나 모든 잘못을 알아 낼 수는 없다.

흔한 실수(Some common errors)

다음은 흔히 볼 수 있는 잘못들이다.

오류 수정 도구(Debugging tools)

오류가 있다면 어느 곳인지 알아야 한다. 문번 오류는 쉽게 찾을 수 있다. 문제는 실제 프로그램 수행시 오류(run-time error)이다. 오류를 찾는 구식 방법은 code에 write 문을 더하여 변수의 값을 추적하는 것이다. 프로그램을 약간 바꿀 때마다 새로 compile하여야 하기에 지겨운 일이다. 오늘날에는 특별한 오류 수정 프로그램 debuggers를 사용할 수 있는데 이는 편리한 도구이다. 프로그램을 한 줄 한 줄 수행시키거나 정지점(break point)를 설정할 수 있고 지켜 보고자하는 변수의 값을 비춰 보는등 여러 가지를 할 수 있다.


[Fortran Tutorial]
충남대학교 물리학과 오 병성