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

  • 相关阅读:
    mac 下安装jenkins
    Appium元素定位难点:tap坐标定位不准确
    Appium元素定位难点:混合式的native+webview
    Linux 上安装 appium
    springMVC之AOP
    设计模式之装饰模式
    设计模式之桥接模式
    MyBatis特殊字符转义
    python+urllib+beautifulSoup实现一个简单的爬虫
    设计模式之代理模式
  • 原文地址:https://www.cnblogs.com/findumars/p/5661921.html
Copyright © 2011-2022 走看看