美文网首页
使用VS Code调试Go程序

使用VS Code调试Go程序

作者: jagitch | 来源:发表于2024-05-24 18:28 被阅读0次

    使用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面板中添加监听,方便实时查看表达式的值

    相关文章

      网友评论

          本文标题:使用VS Code调试Go程序

          本文链接:https://www.haomeiwen.com/subject/paixqjtx.html