zoukankan      html  css  js  c++  java
  • GO的GDB调试

    GoLang语言,学了很久,一直觉得它单步调试有较多问题,最近才知道自已对它了解得太少了。
    原来GO语言对GDB的版本是至少为gdb7以上,才能比较好的打印任意变量,如果低于这个版本,则才会出一些问题。
    网上说GDB版本为7.1,本人使用GDB7.8版本测试,确实很不错。以下是记录单步调试使用的几个打印变量。
    info frame,打印当前栈参数。
    info locals打印局部变量
    info args打印参数。
    bt显示当前堆栈
    x/3xw &r查看内存

    删除调试符号:go build -ldflags “-s -w” filename.go

    -s: 去掉符号信息。
    -w: 去掉DWARF调试信息。
    关闭内联优化:go build -gcflags “-N -l” filename.go

    —————–
    在centos6.6里利用原生的GDB调试时,发现如下特点。
    1.直接使用list命令,会进入到一个如下状态。
    (gdb) l
    /usr/local/go/src/runtime/rt0_linux_amd64.s: No such file or directory.
    in /usr/local/go/src/runtime/rt0_linux_amd64.s

    2.可以使用l main.main命令定位到主函数。
    (gdb) l main.main
    warning: Source file is more recent than executable.
    4
    5 type point struct {
    6 x, y int
    7 }
    8
    9 func main() {
    10 i:=32
    11 p := point{1, 2}
    12 f := 3.3434
    13 txt := "sdfsdfdsfsfds"

    http://www.kxtry.com/archives/737

  • 相关阅读:
    CADisplayLink
    对项目重命名
    TCP|UDP|Http|Socket
    CoreAnimation|动画
    Autolayout
    通讯录
    本地通知
    用于做 Android 屏幕自适应的文章资源
    Java String.format 自动补全不够的位数
    不同语言之间 日期格式转换
  • 原文地址:https://www.cnblogs.com/findumars/p/5661921.html
Copyright © 2011-2022 走看看