1. debug by gdb:

office doc

download the runtime-gdb file.

$ wget -q -O - https://golang.org/src/runtime/runtime-gdb.py  |grep '<span id="L' >  runtime-gdb.py

处理脱字符

$ sed -i -e "s/<span.*span>//g" -e "s/<pre>//g" -e "s/^\t//g" -e 's/"/"/g' -e "s/'/'/g" -e "s/&gt;/>/g" -e "s/&lt;/</g" -e "s/amp;//g" runtime-gdb.py

linux 下应该有脱字符处理工具(iconv)。 或者wget 本身应该能处理掉脱字符。

run gdb by:

$GOROOT=`go env  |grep GOROOT |cut -d "=" -f2`

$ gdb your_bin -d $GOROOT

$ gdb cpuinfo_main -d `go env  |grep GOROOT |cut -d "=" -f2`

source ~/go/src/runtime/runtime-gdb.py

中文参考

发现最新的golang1.6已经自带了runtime-gdb.py

进入gdb

(gdb) add-auto-load-safe-path /usr/local/go/src/runtime/runtime-gdb.py

echo "set auto-load safe-path /" > line to your configuration file "/home/shaohef//.gdbinit".

直接运行

$ gdb your_bin

2. godebug

http://studygolang.com/articles/2899

Download:

$ go get -u github.com/mailgun/godebug

将 _ = "breakpoint" 插入代码。

 package main

 import (
"fmt"
) func main() {
_ = "breakpoint"
fmt.Print("**********************\n")
}

build godbug

$ go build

mv  godbug to goroot bin

$ sudo cp godebug /usr/local/go/bin/

$ debug

godbug run your go_file.

3.  Go语言debug调试

http://studygolang.com/articles/2057

4. 采用idea IDE环境。

http://www.cnblogs.com/lingdhox/p/4189517.html

5. 使用Delve进行Golang代码的调试

http://www.qingpingshan.com/jb/go/111271.html

$ dlv  exec  ./sample-controller -- -kubeconfig=$HOME/.kube/config

使用Delve调试test case

dlv test --build-flags='github.com/dlsniper/u/tmp/mypack' -- -test.run ^TestHello$

https://github.com/derekparker/delve/issues/422

6. 代码中打印栈信息

 package main

 import (
"fmt"
"runtime/debug"
) func test1() {
test2()
} func test2() {
test3()
} func test3() {
fmt.Printf("%s", debug.Stack())
debug.PrintStack()
} func main() {
test1()
}

golang debug调试的更多相关文章

  1. golang debug with LiteIDE

    golang 的调试比较麻烦,debug stop into 无法跳转到自己写的代码,但是能够跳转到系统提供的代码. 以下是简单的测试代码: package main import ( "f ...

  2. 远程debug调试java代码

    远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...

  3. u-boot 2011.09 开启debug 调试

    以前做过,现在刚才又想不起来了,这个错误非常的严重. 在这里记一下. debug 调试信息的开启在 include/common.h 有如下宏定义: #ifdef DEBUG #define debu ...

  4. 使用Eclipse开发Java Web过程中Debug调试的使用方法

    里介绍的是在Eclipse中的Debug调试. 首先右击项目选择Debug As -- Debug on Server 或者点击Server面板的小昆虫图标,启动Debug模式. 运行web项目,进行 ...

  5. eclipse debug (调试) 学习心得

    eclipse debug (调试) 学习心得   进入debug模式:   1.设置断点   2.启动servers端的debug模式   3.运行程序,在后台遇到断点时,进入debug调试状态   ...

  6. Eclipse debug调试

    Eclipse debug调试: F5:跳入方法F6:向下逐行调试F7:跳出方法F8:直接跳转到下一个断点

  7. (转) eclipse debug (调试) 学习心得

    1.Step Into (also F5) 跳入2.Step Over (also F6) 跳过3.Step Return (also F7) 执行完当前method,然后return跳出此metho ...

  8. Android Studio的使用(二)--Debug调试

    使用Android Studio进行Debug调试,这里有一篇比较详细的介绍 http://www.2cto.com/kf/201506/408358.html 故不再重复介绍.

  9. Eclipse中debug调试java代码一直报Source not found的解决办法

    今天使用eclipse的debug调试代码,一直没法正常调试,一按F6就提示Source not found 根据提示发现可能是另一个项目影响了,所以把另一个项目Close Project,这次直接t ...

随机推荐

  1. opencv学习网站

    强烈推荐一个老外的网站,pyimagesearch 网址:https://www.pyimagesearch.com/

  2. Spring Data 介绍 (一)

    简介 Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷 Spring Data JPA能干什么 可以极大的 ...

  3. 将字符串类型转化为date类型

    直接上代码 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; pub ...

  4. oracle(三) SQL语句

    1.聚集函数遇到空值时,除count(*)外,都会跳过空值. 2.group by 细化聚集函数的作用对象 3.group by有个原则,就是select后面出面的列,除聚集函数外必须出现在group ...

  5. javaScript高级教程(五) Event Flow

    1.两个阶段三个模型:Netscape支持事件捕获,IE支持事件冒泡,w3c是先捕获后冒泡 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 S ...

  6. [py]py常用模块小结

    - python md5校验: https://blog.csdn.net/linda1000/article/details/17581035 import hashlib hashlib.md5( ...

  7. 使用POI读取/创建Execl(.xlsx)文件

    最近项目中用到了解析Execl表格的功能,在网上百度了一下自己写了一个小Demo.由于项目中使用的是Execl2007,就是后缀为.xlsx的,所以只研究了解析和创建Execl2007的文件,解析Ex ...

  8. localhost和本机IP和127.0.0.1之间的区别

    参考出处:https://www.zhihu.com/question/23940717 localhost 是个域名,不是地址,它可以被配置为任意的 IP 地址,不过通常情况下都指向 127.0.0 ...

  9. C# 开发圆角控件(窗体)

    最近在做卡片视图的程序,要求将控件做成带有圆角的效果,下面是我在网上查找的资料,经过测试,确定可以实现功能.其中方法三既适应于控件,也适应于窗体. 先上传效果图: 方法一: 增加命名空间:using  ...

  10. Filter—过滤器和拦截器的区别

    1.首先要明确什么是拦截器.什么是过滤器 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加 ...