Golang 지금 여기 GDB
잘
작동 gdbtest
- gdbtest/
- main.go
그 주요 에 main.go에게 다음과 같은 예를
package main
import "fmt"
type MyStruct struct {
x string
i int
f float64
}
func main() {
x := "abc"
i := 3
fmt.Println(i)
fmt.Println(x)
ms := &MyStruct{
x: "cba",
i: 10,
f: 11.10335,
}
fmt.Println(ms)
}
저장을 타고 예제 golang 응용 프로그램에게 있습니다. go. 그런 다음 아래의 gcflag
플래그로 컴파일하십시오. 새로 건설 golang 응용 프로그램
gdb gdbtest
# or
gdb <PROJECT_NAME>
와
go build -gcflags "-N"
열기 GDB는 이제 GDB의 전체 제어 할 수 있습니다. 예를 들어, 이제 당신은 모든 지역 변수
을 인쇄 할 수 있습니다 다음
run
(gdb) br 22
Breakpoint 1 at 0x2311: file /go/src/github.com/cevaris/gdbtest/main.go, line 22.
(gdb) run
Starting program: /go/src/github.com/cevaris/gdbtest/gdbtest
3
abc
Breakpoint 1, main.main() at /go/src/github.com/cevaris/gdbtest/main.go:22
22 fmt.Println(ms)
(gdb)
와 응용 프로그램을 실행 br <linenumber>
명령으로 중단 점을 추가
(gdb) info locals
i = 3
ms = 0x20819e020
x = 0xdb1d0 "abc"
심지어 포인터에 접근 할 수
(gdb) p ms
$1 = (struct main.MyStruct *) 0x20819e020
(gdb) p *ms
$2 = {x = 0xdb870 "cba", i = 10, f = 11.103350000000001}
고마워, GDB 대신에 어떤 옵션이 있니? – python
다른 옵션이 없습니다 - 봐 [여기] (http://stackoverflow.com/questions/16492509/does-any-golang-interactive-debugger-exist/23387017#23387017) – metakeule
나는 go-1.4.rc2를 시도했다. 그리고 그것은 gdb와 함께 작동하는 것 같습니다. –