golang 소프트웨어 개발자로서 우리 모두는 다음과 같은 문제에 직면합니다. golang 코드를 실행하는 데 문제가 있을 때 근본 원인을 어떻게 찾을 수 있을까요? 이 글에서는 golang의 디버깅 도구와 이를 사용하여 문제를 빠르게 찾는 방법을 살펴보겠습니다.
- GDB 디버거
GDB는 C/C++, Golang 등 다양한 프로그래밍 언어에 사용할 수 있는 강력한 디버거입니다. Golang에서는 GDB를 사용하여 코드를 추적하고 디버깅할 수 있습니다. 다음은 몇 가지 기본 GDB 명령입니다.
- 중단점 설정: break main.main
- 계속 실행: 계속
- 실행 재개: 이력서
- 단일 단계 실행: step
- 단일 단계 실행(함수 입력 없음) : next
- 표시 변수 값: p 변수 이름
다음은 GDB를 사용하여 Golang 프로그램을 디버깅하는 방법을 보여주는 간단한 예입니다.
먼저 프로그램에 중단점을 삽입해야 합니다. 메인 함수에 삽입하면 됩니다. 그런 다음 디버깅해야 하는 프로그램 디렉터리에서 다음 명령을 사용하여 프로그램을 시작합니다.
$ gdb ./main
GNU gdb (GDB) 7.6.2
...
/home/user/에서 기호 읽기 Documents/go /src/debugging/main...done.
(gdb) break main.main
0x4012b4의 중단점 1: 파일 /home/user/Documents/go/src/debugging/main.go, 5행
(gdb) run
프로그램이 우리가 설정한 중단점까지 실행되면 디버깅을 위해 프로그램이 일시 중지됩니다. 이때 다른 GDB 명령을 사용하여 변수 및 기타 디버깅 정보를 볼 수 있습니다.
- Delve
go-delve는 golang 프로그램 디버깅에 사용할 수 있는 강력한 디버거입니다. GDB와 비교하여 Delve는 보다 친숙한 디버깅 환경을 제공하고 중단점 설정 및 프로그램 변수의 동적인 수정을 지원합니다. 동시에 Delve는 다음 기능도 제공합니다.
원격 프로그램 디버깅 지원 - API를 사용하여 프로세스를 디버깅할 수 있습니다.
-
- 다음은 Delve 사용의 몇 가지 예입니다.
먼저 Delve를 설치해야 합니다. Linux 시스템에서는 다음 명령을 사용하여 설치할 수 있습니다.
$ go get github.com/go-delve/delve/cmd/dlv
디버깅해야 하는 프로그램 디렉터리에서 다음 명령을 사용하여 프로그램을 시작합니다. 프로그램:
$ dlv debug ./main.go
그러면 디버거는 터미널에 장면 정보를 출력하고 명령줄 모드로 들어갑니다. 명령줄 모드에서 명령을 사용하여 프로그램을 디버깅할 수 있습니다.
중단점 설정: break main.main
계속 실행: continue- 실행 재개: restart
- 단일 단계 실행: step
- 단일 단계 실행(함수 입력 없이): next
- 표시 변수 값: p 변수
-
- Delve라는 이름은 디버그 모드에서 변수 값 수정도 지원합니다. 예:
(gdb) p x
$1 = 1
(gdb) set x = 2
(gdb) p x
$2 = 2
VSCODE 디버깅
- Visual Studio Code는 Golang을 포함한 다양한 프로그래밍 언어를 지원하는 매우 널리 사용되는 개발 환경입니다. VSCODE에서는 내장된 Golang 확장을 사용하여 Golang 프로그램을 디버깅할 수 있습니다.
먼저 vscode-go 확장 프로그램을 설치하세요. 그런 다음 단축키 F5 또는 왼쪽의 실행 및 디버그 버튼을 통해 디버깅 인터페이스를 엽니다. 인터페이스의 왼쪽 상단에서 디버깅할 프로젝트를 선택할 수 있습니다. 예를 들어 디버깅하려는 프로젝트는 main.go입니다. 실행 버튼을 클릭하면 프로그램이 디버그 모드로 시작됩니다.
VSCODE의 디버깅 패널에서는 중단점 설정, 프로그램 변수 보기, 프로그램 변수 동적으로 수정 등을 할 수 있습니다. 다음은 몇 가지 기본 디버깅 명령입니다.
중단점 설정: 코드 줄 왼쪽의 빈 공간을 클릭합니다.
계속 실행: F5- 단일 단계 실행: F10
- 단일 단계 실행( 함수): F11
- 단일 단계 실행(건너뛰기 기능): F11
- 변수 값 표시: 마우스를 변수의 프롬프트 창으로 이동
-
- VSCODE의 디버거 상호 작용은 매우 편리하며 프로그램을 빠르게 찾는 데 도움이 될 수 있습니다. 문제를 해결하고 디버깅 효율성을 향상시킵니다.
요약:
위는 golang에서 디버깅하는 세 가지 방법입니다. 각 방법에는 장점과 단점이 있습니다. GDB는 대부분의 프로그래밍 언어에서 사용할 수 있는 매우 강력한 디버거이지만 사용이 더 복잡합니다. Delve는 Golang의 많은 고유한 디버깅 기능을 제공하는 종합적인 통합 개발 환경입니다. golang 플러그인, 뛰어난 디버깅 대화형 인터페이스, 간단하고 사용하기 쉬운 지원합니다. 이 기사가 Go 디버깅에 대해 질문이 있는 프로그래머에게 도움이 되기를 바랍니다.
위 내용은 golang의 디버깅 도구에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!