使用VS Code调试Go程序

前期准备

  1. 在vs code中的扩展程序中搜索并安装Go扩展程序,注意作者是golang

  2. 打开vs code的命令面板,输入"Go: Install/Update Tools",并单击该命令执行,安装或更新Go语言的工具

源代码

package main

func main() {
    a, b := 10, 12
    sum := add(a, b)
    println(sum)

}

func add(a, b int) int {
    return a + b
}

启动调试

  1. 在源码文件想要调试的行号左边单击,会出现一个小红点,这个是断点(breakpoint)

  2. 按F5或者调试菜单单击运行即可启动调试,程序执行到断点处会停止运行,等待接下来的指令。

  3. 进入调试模式后,vs code在源码文件上面会出现6个调试按钮,

    • 点击播放图标可以让程序运行到下一个断点,如果没有断点了,程序就会一直运行直到程序结束。

    • 点击转弯箭头,可以跳到下一条代码,如果是函数调用直接执行完函数后跳到下一条语句后停止。

    • 点击向下箭头,可以跳到下一条语句,如果遇到函数调用,则直接跳到函数的第一条语句并停止

    • 点击向上箭头,可以跳出本函数

    • 点击刷新按钮,可以重新进入调试模式

    • 点击停止按钮,直接停止调试,退出程序

高级调试技巧

利用vs code的调试面板
  • vs code的调试面板可以查看局部变量、Watch监听表达式、查看CALL STACK(调用栈)、管理所有断点等。

  • 在CALL STACK面板可以查看所有线程以及每个线程的调用栈,右击调用栈在快捷菜单中点击"Open Disassembly View"可以打开反汇编界面,在这里可以单步调试反汇编代码。

利用调试控制台(DEBUG CONSOLE) 查看更多信息
  1. 查看变量名或者函数名

      a
      10
      add
      main.add
    
  2. 查看CPU寄存器的值,需要使用对应架构下的寄存器名称,如32位x86使用EAX、EBX等

      RAX
    > 22 = 0x16
      RBX
    > 12 = 0xc
    
  3. 查看当前栈顶的地址

      RSP
    > 824634107712 = 0xc00005e740
    
  4. 查看当前栈顶往高地址方向偏移8个字节的地址处的值

      *(*int)(RSP+0x8)
    > 12
    
  5. 查看当前goroutine

      runtime.curg
    
  6. 以上debug命令都可以直接在Watch面板中添加监听,方便实时查看表达式的值

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gopyer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值