간단히 말하면, 두 가지 방법이 있습니다. 하나는 소스 코드를 분석하여 버그 위치를 찾는 것입니다. 일반적으로 printf()는 프로그램 실행의 각 단계에 대한 정보를 출력하는 데 사용됩니다. 다른 하나는 실행 파일 디버깅으로, 이를 수행하려면 디버거를 사용해야 합니다.
1. 소스코드 디버깅
은 주로 프로그램 실행 시 출력되는 정보를 이용하여 버그 위치를 찾아 소스코드를 수정합니다.
#include <stdio.h> void f() { ; } int main() { #ifdef _DEBUG printf("start main function!\n"); #endif void f(); #ifdef _DEBUG printf("leave main function !\n"); #endif return 0; }
C 언어에서 디버그를 사용하는 또 다른 사례
# 在代码中写入 #ifdef DEBUG #endif # 编译时用 gcc –DDEBUG –g –o *** ***.c 此时运行的结果是有debug信息的 ,gcc –o *** ***.c 无debug 信息 ,如 # include <stdio.h> int main () { int i=0 ; while (1) { printf ("hello world\t") ; i++ ; printf ("time=%d\n",i); #ifdef DEBUG if (i>10) break ; #endif } return 0 ; }
Open debug: gcc -DDEBUG -o debug debug.c
디버그할 필요 없음(무한 루프): gcc -o debug debug.c
2 실행 가능합니다. 파일 디버깅 중 Windows 플랫폼에서 일반적으로 사용되는 디버깅은 vs/vc와 함께 제공되는 디버깅입니다. 다른 하나는 Microsoft에서 개발한 디버거 windbg입니다. gdb는 Linux 플랫폼에서 일반적으로 사용됩니다.
IDE에 포함된 디버거는 VC6.0을 예로 들어보겠습니다. 코드를 작성한 후 단축키 F11을 눌러 디버깅에 들어갑니다. 이때 마우스 오른쪽 버튼을 클릭하고 "go to disassemble"을 선택하면 디스어셈블리를 볼 수 있습니다. 프로그램의 코드. 일반적으로 이 경우 주로 C 언어의 디스어셈블리를 학습하기 위한 것입니다.
Windbg에는 소스 코드 디버그, 실행 파일 디버그, 커널 디버깅, 덤프 파일 디버그 등 다양한 기능이 있습니다. 실행 파일을 디버그하려면 클릭만 하면 자연스럽게 익숙해집니다. "파일"을 클릭하고 팝업 대화 상자에서 "실행 파일 열기"를 선택한 다음 디버그하려는 프로그램을 찾으세요.
Gdb 디버거는 Linux에서 일반적으로 사용됩니다. gdb 디버깅을 사용하려면 gcc 또는 g++를 사용하여 C/C++ 파일을 컴파일할 때 -g 매개변수를 추가하여 기호 테이블을 생성해야 한다는 점에 유의할 가치가 있습니다. 아래 그림은 C++에서 변수의 분포를 분석하기 위해 gdb를 사용한 스크린샷입니다. 많이 사용해보면 익숙해질 것이므로 따로 배울 필요는 없습니다. .
위 내용은 C 언어에서 디버그를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!