gdlv - Go언어 디버거
gdlv
는 go 언어 디버깅을 gui로 할 수 있는 tool입니다.
디버깅 중에 코드 , 변수, 스택, 고루틴 등 여러 정보를 한눈에 볼 수 있어 delve보다 디버깅이 편합니다.
gdlv 설치
1. delve
를 설치합니다.
gdlv
를 사용하려면 delve
가 있어야 합니다.
go get -u github.com/go-delve/delve/cmd/dlv
2. gdlv
를 설치합니다.
go get -u github.com/aarzilli/gdlv
3. 설치 확인을 합니다.
$ gdlv version
Gdlv Debugger
Version: 1.4
version 정보가 출력된다면 설치가 완료된 것입니다.
gdlv 사용방법
gdlv run
명령어는 프로그램 파일을 가지고 디버깅하는 명령어입니다.
gdlv run <program file> <program's arguments...>
gdlv exec
명령어는 실행파일을 가지고 디버깅하는 명령어입니다.
gdlv exec <executable> <program's argumenrts...>
gdlv attach
명령어는 실행 중인 프로세스에 접근하여 디버깅하는 명령어입니다.
gdlv attach <pid> [path to executable]
이 밖에 여러 명령어가 있으니 확인해 보시기 바랍니다.
Usage:
gdlv [options] connect <address>
gdlv [options] debug <program's arguments...>
gdlv [options] run <program file> <program's arguments...>
gdlv [options] exec <executable> <program's arguments...>
gdlv [options] test <testflags...>
gdlv [options] attach <pid> [path to executable]
gdlv [options] core <executable> <core file>
gdlv [options] replay <trace directory>
All commands except "core" and "replay" can be prefixed with the name of a backend, for example:
gdlv rr:run <program file> <program's arguments...>
Executes "gdlv run" using mozilla rr has a backend.
Options must appear before the command and include:
-d <dir> builds inside the specified directory instead of the current directory (for debug and test)
-tags <taglist> list of tags to pass to 'go build'
아래 파일을 가지고 디버깅을 해보겠습니다.
$ ls
hello.go
package main
import (
"fmt"
"os"
)
const (
defaultName="yoon"
)
func disPlayHello(str string) {
fmt.Println("Hello", str)
}
func main() {
name := defaultName
if len(os.Args) > 1 {
name = os.Args[1]
}
displayHello(name)
}
위 코드는 인자 값이 없다면 "Hello yoon"을 출력하고 인자값이 있다면 "Hello 인자 값"을 출력하는 코드입니다.
yoongrammer라는 인자 값을 추가하여 gdlv를 실행해 보겠습니다.
$ gdlv run ./hello.go yoongrammer
위와 같은 화면이 실행되고 command창에 command를 입력하여 디버깅을 할 수 있습니다.
default로 4개의 창이 뜹니다.(Listing, Command, Stacktrace, Variables)
command 종류를 보고 싶다면 help
를 입력하시면 사용할 수 있는 command 목록이 출력되니 확인해 보시기 바랍니다. (n : next , q : 종료...)
Command 창 우측 상단에 NEW WINDOW
를 이용하면 여러 가지 정보(global 변숫값, 고루틴 등)를 새로운 창을 열어서 확인할 수 있습니다.
Command 창에 config
명령어를 입력하면 스킨 및 화면 크기 등을 조절할 수도 있습니다.