使用VS Code调试Go程序

2024-05-24  本文已影响0人  jagitch

使用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的调试面板

利用调试控制台(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面板中添加监听,方便实时查看表达式的值

上一篇下一篇

猜你喜欢

热点阅读