>  기사  >  백엔드 개발  >  golang의 디버깅 도구에 대해 이야기해 보겠습니다.

golang의 디버깅 도구에 대해 이야기해 보겠습니다.

PHPz
PHPz원래의
2023-03-31 10:24:44905검색

golang 소프트웨어 개발자로서 우리 모두는 다음과 같은 문제에 직면합니다. golang 코드를 실행하는 데 문제가 있을 때 근본 원인을 어떻게 찾을 수 있을까요? 이 글에서는 golang의 디버깅 도구와 이를 사용하여 문제를 빠르게 찾는 방법을 살펴보겠습니다.

  1. 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 명령을 사용하여 변수 및 기타 디버깅 정보를 볼 수 있습니다.

  1. 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 디버깅

  1. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.