如何解决使用 delve 使用 'next' 调试 golang 将跳过某些步骤
当我使用 delve 调试这个项目时(dlv debug t.go
):
//t.go
package main
import (
"fmt"
"os"
"reflect"
"unsafe"
)
func main() {
s1 := make([]uint8,0)
aboutSlice(&s1,"s1")
s2 := make([]uint8,8)
aboutSlice(&s2,"s2")
new_s1 := append(s1,10)
new_s2 := append(s2,20)
aboutSlice(&new_s1,"new_s1")
aboutSlice(&new_s2,"new_s2")
os.Exit(0)
}
func aboutSlice(s *[]uint8,n string) {
fmt.Printf("%s:\tmem_addr:%p\tsize:%v\taddr:%#x\tlen:%v\tcap:%v\n",n,s,unsafe.Sizeof(*s),(*reflect.SliceHeader)(unsafe.Pointer(s)).Data,len(*s),cap(*s))
}
我想分析函数growslice的行为(在runtime/slice.go中),然后在funcgrowslice上设置断点,我用n
和s
来分析,但是会跳过一些步骤,如下图所示:
enter image description here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。