首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

使用VS Code调试Go程序

  • 25-03-05 12:40
  • 2650
  • 10769
blog.csdn.net

使用VS Code调试Go程序

      • 前期准备
      • 源代码
      • 启动调试
      • 高级调试技巧
        • 利用vs code的调试面板
        • 利用调试控制台(DEBUG CONSOLE) 查看更多信息

前期准备

  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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

启动调试

  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
    
    • 1
    • 2
    • 3
    • 4
  2. 查看CPU寄存器的值,需要使用对应架构下的寄存器名称,如32位x86使用EAX、EBX等

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

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

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

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

文章知识点与官方知识档案匹配,可进一步学习相关知识
Go技能树首页概览4816 人正在系统学习中
注:本文转载自blog.csdn.net的gopyer的文章"https://blog.csdn.net/fuxily/article/details/139194125"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top