添加到@AlexAtNet的答案中,Go 1.2.x之后的所有内容都中断了GDB支持,因此请使用go 1.2.x进行调试或使用gccgo(请记住,gcc
4.8.x支持go 1.1,gcc 4.9.x最高为1.2)。 。
另一个选择是使用您自己的跟踪函数,虽然不是很漂亮,但它是go 1.3+的唯一真正的调试选项。
我个人使用这样的东西进行调试:
var traceLock sync.Mutexfunc trace(a ...interface{}) { traceLock.Lock() pc, f, ln, ok := runtime.Caller(1) fn := "" if ok { fn = runtime.FuncForPC(pc).Name() } fmt.Printf("trace: %s %s:%d", fn, filepath.base(f), ln) if len(a) > 0 { fmt.Println(append([]interface{}{": "}, a...)...) } traceLock.Unlock()}
playground
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)