golang debug调试
1. debug by gdb:
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/>/>/g" -e "s/</</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
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调试的更多相关文章
- golang debug with LiteIDE
golang 的调试比较麻烦,debug stop into 无法跳转到自己写的代码,但是能够跳转到系统提供的代码. 以下是简单的测试代码: package main import ( "f ...
- 远程debug调试java代码
远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...
- u-boot 2011.09 开启debug 调试
以前做过,现在刚才又想不起来了,这个错误非常的严重. 在这里记一下. debug 调试信息的开启在 include/common.h 有如下宏定义: #ifdef DEBUG #define debu ...
- 使用Eclipse开发Java Web过程中Debug调试的使用方法
里介绍的是在Eclipse中的Debug调试. 首先右击项目选择Debug As -- Debug on Server 或者点击Server面板的小昆虫图标,启动Debug模式. 运行web项目,进行 ...
- eclipse debug (调试) 学习心得
eclipse debug (调试) 学习心得 进入debug模式: 1.设置断点 2.启动servers端的debug模式 3.运行程序,在后台遇到断点时,进入debug调试状态 ...
- Eclipse debug调试
Eclipse debug调试: F5:跳入方法F6:向下逐行调试F7:跳出方法F8:直接跳转到下一个断点
- (转) eclipse debug (调试) 学习心得
1.Step Into (also F5) 跳入2.Step Over (also F6) 跳过3.Step Return (also F7) 执行完当前method,然后return跳出此metho ...
- Android Studio的使用(二)--Debug调试
使用Android Studio进行Debug调试,这里有一篇比较详细的介绍 http://www.2cto.com/kf/201506/408358.html 故不再重复介绍.
- Eclipse中debug调试java代码一直报Source not found的解决办法
今天使用eclipse的debug调试代码,一直没法正常调试,一按F6就提示Source not found 根据提示发现可能是另一个项目影响了,所以把另一个项目Close Project,这次直接t ...
随机推荐
- MyBatis学习(一)一个简单的例子
mybatis入门例子 开发步骤: 1.创建java工程 2.加入jar包(依赖包.驱动包) 3.创建sqlMapConfig.xml 4.创建数据库,数据库表USER_C,插入测试记录 5.创建PO ...
- 完整的Jquery-easyUI显示分页数据例子
虽然说是入门的例子,但本人尽量做的详细点,以后会继续更新,部分功能 此外,为了后继easyui的学习,做了一个简单的框架:后台采用hibernate2.5+struts2开发:数据库用mysql.红色 ...
- Ubuntu:14.04.2 安装多个Linux内核
http://blog.csdn.net/ddk3001/article/details/47340119 安装Ubuntu 14.04.2 后,内核是 3.16.0-30-generic 1.虚 ...
- postgresql shell发起select操作报错ERROR: relation "tablename" does not exist
最近安装了一套clourdera manager,其中hive元数据保存在postgresql中,因为今天想看一下hive的元数据信息,就登录了psql,连接到hive元数据库,发起select操作, ...
- Oracle管理监控之rlwrap-0.37.tar.gz实现sqlplus上下翻页
1.上传rlwrap-0.37.tar.gz到linux 2.解压rlwrap-0.37.tar.gz [root@node1 mnt]# tar zxvf rlwrap-0.37.tar.gz [r ...
- flask数据库操作
Python 数据库框架 大多数的数据库引擎都有对应的 Python 包,包括开源包和商业包.Flask 并不限制你使用何种类型的数据库包,因此可以根据自己的喜好选择使用 MySQL.Postgres ...
- nodejs(五)同步异步--BLOCKING THE EVENT LOOP
1.BLOCKING THE EVENT LOOP Node and JavaScript runtimes in general are single-threaded event loops. O ...
- dedecms批量导出新增文章url和标题
百度站长工具推出主动提交功能有一段时间了,可以将新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录.那么dedecms如何批量导出新增文章url呢?你可以用标签调用最新文章,可以用sq ...
- semi-consistent简介
semi-consistent简介 http://hedengcheng.com/?p=220 semi-consistent简介 1 semi-consistent实现 2 MySQL ...
- 机器学习理论基础学习5--- PCA
一.预备知识 减少过拟合的方法有:(1)增加数据 (2)正则化(3)降维 维度灾难:从几何角度看会导致数据的稀疏性 举例1:正方形中有一个内切圆,当维度D趋近于无穷大时,圆内的数据几乎为0,所有的数据 ...