C 언어 프로그램의 디버깅 방법

angryTom
풀어 주다: 2020-02-20 13:34:30
원래의
10941명이 탐색했습니다.

C언어 프로그램 디버깅 방법

프로그램 디버깅이란 프로그램의 오류를 확인하고 문제를 해결하는 것을 말합니다.

프로그램 디버깅은 일반적으로 다음 단계를 거쳐야 합니다.

1. 먼저 수동 검사, 즉 정적 검사를 수행합니다.

프로그램을 작성한 후 서두르지 말고, 프로그램을 수동으로 점검하세요. 이 단계는 프로그래머의 부주의로 인해 발생하는 대부분의 오류를 감지할 수 있기 때문에 매우 중요합니다. 이 단계는 항상 모든 것을 컴퓨터에 전달하려는 사람들이 간과하는 경우가 많지만 이는 더 많은 기계 시간을 차지합니다. 프로그래머로서 엄격한 스타일을 개발하고 모든 단계를 엄격하게 제어하며 후속 문제를 남기지 않아야 합니다. 프로세스. (추천 학습:

c 언어 비디오 튜토리얼

) 수동 검사를 보다 효과적으로 수행하기 위해 컴파일된 프로그램은 다음 사항을 달성하도록 노력해야 합니다.

① 가독성을 높이기 위해 구조화된 프로그래밍 방법을 사용하여 프로그래밍해야 합니다.

②각 프로그램의 역할을 이해하는 데 도움이 되도록 주석을 최대한 많이 추가하세요.

③복잡한 프로그램을 작성할 때 모든 명령문을 주 함수에 작성하지 말고, 더 많은 함수를 사용하고 하나의 함수를 사용하여 별도의 함수를 구현하세요.

매개변수를 사용하여 데이터를 전송하는 것 외에도 기능 간 결합 관계가 최대한 적어야 별도로 확인하고 처리하기가 쉽습니다.

2. 수동 검사가 올바른 후 컴퓨터로 이동하여 디버깅합니다.

컴퓨터 테스트를 통해 오류를 발견하는 것을 동적 검사라고 합니다. 컴파일하는 동안 구문 오류 정보가 제공됩니다. 디버깅하는 동안 프롬프트 정보를 사용하여 프로그램의 오류를 찾아 수정할 수 있습니다. 때로는 오류 프롬프트가 실제 오류 위치가 아니라는 점에 유의해야 합니다. 오류가 표시된 줄에서 오류를 찾을 수 없으면 이전 줄에서 찾아야 합니다. 때로는 오류 메시지의 유형이 완전히 정확하지 않을 수도 있습니다. 오류 상황이 많고 다양한 오류가 서로 관련되어 있기 때문에 문자 그대로 오류 메시지를 찾는 것보다 실제 오류를 분석하고 찾아내는 데 능숙해야 합니다. .

시스템에서 오류 메시지가 많이 표시되면 위에서 아래로 하나씩 수정해야 합니다. 때로는 큰 오류 정보가 표시되어 사람들이 문제가 심각하고 시작할 방법이 없다고 느끼게 만드는 경우가 많습니다. 사실 어쩌면 한두 가지 실수만 있을 수도 있습니다. 예를 들어, 사용된 변수가 정의되지 않은 경우 컴파일 중에 해당 변수를 포함하는 모든 명령문에 오류 메시지가 표시됩니다. 이때 변수 정의만 추가하면 모든 오류가 제거됩니다.

3. 구문 오류("오류" 및 "경고" 포함)를 수정한 후 프로그램은 링크를 통해 실행 가능한 대상 프로그램을 가져옵니다.

.

프로그램을 실행하고 프로그램에 필요한 데이터를 입력하면 결과를 얻을 수 있습니다. 실행 결과를 분석하여 요구 사항을 충족하는지 확인해야 합니다. 초보자 중에는 세심한 분석 없이 실행 결과를 보고 문제가 없다고 생각하는 경우가 있는데, 이는 위험합니다.

때로는 데이터가 복잡해서 결과가 올바른지 즉시 판단하기 어려울 때가 있습니다. 일련의 "테스트 데이터"를 미리 고려하면 이러한 데이터를 입력하면 결과가 올바른지 쉽게 확인할 수 있습니다. 예를 들어 ax2+bx+c=0이라는 방정식을 풀고 a, b, c의 값을 각각 1, -2, 1로 입력하면 루트 x의 값은 1이 됩니다. 근이 1이 아니면 판단하기 쉽습니다. 프로그램은 분명히 잘못된 것입니다. 단, "테스트 데이터"를 사용하는 경우 프로그램 실행 결과는 정확하지만 프로그램이 완전히 정확하다는 보장은 없습니다. 다른 데이터 세트를 입력하면 결과가 정확하지 않을 가능성이 있기 때문입니다. 예를 들어 수식을 사용하여 근의 값을 구하는 경우(a=0은 옹호 및 복수화되지 않았습니다). 그러므로 프로그램이 직면할 수 있는 모든 상황을 하나씩 시도해야 합니다. 예를 들어, if 문에 두 개의 분기가 있는 경우 분기 중 하나를 통과할 때 프로그램 결과가 정확하지만 다른 분기를 통과할 때 결과가 올바르지 않을 수 있습니다. 모든 것을 고려해야 합니다. 실제로 프로그램이 복잡할 경우 가능한 모든 상황을 테스트하기는 어렵습니다. 단지 일반적인 핵심 데이터만 선택하여 테스트하면 됩니다.

4. 대부분 논리적 오류로 인해 실행 결과가 잘못되었습니다. 이러한 오류를 발견하려면 주의 깊은 검사와 분석이 필요한 경우가 많습니다. 다음과 같은 방법을 사용할 수 있습니다.

1. 프로그램을 순서도와 주의 깊게 비교하면 프로그램이 잘못된 것인지 쉽게 찾을 수 있습니다. 예를 들어 복합문에서 중괄호 작성을 잊어버린 경우 흐름도를 보면 빠르게 찾을 수 있습니다.

2. 정말 오류를 찾을 수 없다면 "세그먼트 검사" 방법을 사용해 보세요. 프로그램의 서로 다른 위치에 여러 개의 printf 함수 명령문을 설정하여 관련 변수의 값을 출력하고 섹션별로 확인합니다. 특정 부분의 데이터가 부정확하다는 사실이 발견될 때까지. 현재 오류는 이 문단에 국한되었습니다. "오류 검사 영역"을 지속적으로 줄여서 오류를 찾을 수 있습니다.

3. "조건부 컴파일" 명령을 사용하여 프로그램을 디버깅할 수도 있습니다. (프로그램 디버깅 단계에서 여러 printf 함수 명령문이 컴파일되고 실행됩니다. 디버깅이 완료되면 다음 명령문이 실행됩니다.

더 이상 컴파일할 필요가 없으며 더 이상 실행되지 않습니다.) 이 방법을 사용하면 효율성을 높이기 위해 printf 함수 명령문을 하나씩 제거할 필요가 없습니다.

4. 프로그램에 문제가 없으면 순서도를 통해 오류, 즉 알고리즘에 문제가 있는지 확인하세요. 그렇다면 이를 수정한 후 프로그램을 수정하십시오.

5. 일부 시스템은 프로그램을 추적하고 해당 정보를 제공하는 디버그 도구도 제공하므로 관련 설명서를 참조하세요.

간단히 말하면 프로그램 디버깅은 노력과 두뇌 사용, 경험 축적이 필요한 상세하고 심층적인 작업입니다. 프로그램 디버깅 과정에는 개인의 수준, 경험

및 태도가 반영되는 경우가 많습니다. 모두가 충분히 관심을 가져주셨으면 좋겠습니다. 컴퓨터에서 프로그램을 디버깅하는 목적은 결코 "프로그램의 정확성을 확인하는 것"이 ​​아니라 "디버깅 방법과 기술을 익히는 것"이므로 스스로 문제를 찾는 방법을 배워야 천천히 실용적인 프로그램을 작성할 수 있습니다. 오류가 적습니다.

C 언어에 대한 더 많은 프로그래밍 튜토리얼을 보려면 PHP 중국어 웹사이트를 주목하세요.​ ​

위 내용은 C 언어 프로그램의 디버깅 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!