gdb调试go程序

gccgo原生支持gdb。
编译和连接go程序时使用gc工具链,将生成DWARFv4调试信息。链接器标志-w将会忽略调试信息。
gc生成代码包括内联函数调用和寄存器变量,有些优化操作导致gdb调试变得困难,使用go build-gcflags=all="-N -l"
编译选项取消优化。

core dump. 触发dump当程序崩溃时。设置环境变量GOTRACEBACK=crash。

gdb的一般操作:
    list
    list line
    list file.go:line 
    break line 
    break file.go:line 
    disas 
    
    bt
    frame n //展示栈结构
    
//展示本地变量、参数和返回值的类型,名称,栈帧等内容
    info locals       
    info args        
    p variable        
    whatis variable 
    
//go扩展
    p var         //打印
    p $len(var) $cap() 
    $dtype(var)         //
    iface var 
    
    info goroutine 
    goroutine n cmd 
    help goroutine
    
案例

go test -c --->生成可执行文件regexp.test 

编辑/etc/gdbinit文件,添加
add-auto-load-safe-path

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值