여기에서 부터는 한 단위(step) 코드를 실행해야 할 것이다. s(step)명령으로 다음 단계의 코드에 진입할 수 있다.
(dlv) s
> github.com/golang/example/stringutil.Reverse() /home/yundream/go/src/github.com/golang/example/stringutil/reverse.go:21 (PC: 0x49c02b)
16:
17: // Package stringutil contains utility functions for working with strings.
18: package stringutil
19:
20: // Reverse returns its argument string reversed rune-wise left to right.
=> 21: func Reverse(s string) string {
22: r := []rune(s)
23: for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
24: r[i], r[j] = r[j], r[i]
25: }
26: return string(r)
이제 다른 패키지의 함수에 진입했다. 디버깅을 위해서 매개변수 s의 값을 확인하고 싶다. p(print)로 확인해보자.
(dlv) p s
"!selpmaxe oG ,olleH"
이 함수의 핵심 알고리즘은 24라인이다. 24라인을 브레이크 포인트로 잡는다.
(dlv) b 24
Breakpoint 2 set at 0x49c0db for github.com/golang/example/stringutil.Reverse() /home/yundream/go/src/github.com/golang/example/stringutil/reverse.go:24
Delve
설치
Delve를 이용한 디버깅 준비
명령행을 이용한 디버깅
디버깅 명령들
vim에서 사용
참고
Recent Posts
Archive Posts
Tags