当前位置: 首页 > news >正文

golang debug调试

1. 本地调试

1:Add Configurations 添加配置文件(Run kind :Directory)



2:进入run运行窗口


3:debug断点调试模式



1. Resume Program (继续运行)
图标: ?? 或 ? 快捷键: F9(Windows/Linux)、Command+Option+R(Mac) 作用: 程序会继续运行直到下一个断点或调试结束。如果没有更多断点,程序会正常执行至结束。
2. Step Over (单步跳过)
图标: ? 快捷键: F8(Windows/Linux)、Command+F8(Mac) 作用: 单步执行当前代码行,但不会进入函数内部(如果当前行是函数调用,会跳过函数内部的执行)。
3. Step Into (单步进入)
图标: ??↘? 快捷键: F7(Windows/Linux)、Command+Option+Down(Mac) 作用: 进入当前行调用的函数内部进行调试。如果该行没有函数调用,则执行下一行代码。
4. Step Out (单步返回)
图标: ↖??? 快捷键: Shift+F8(Windows/Linux)、Command+Option+Up(Mac) 作用: 跳出当前函数,返回到调用此函数的上一层,并暂停在那里。
5. Evaluate Expression (表达式求值)
图标: ?? 快捷键: Alt+F8(Windows/Linux)、Option+F8(Mac) 作用: 允许你在调试过程中动态评估某个表达式的值,非常适合临时检查复杂变量或表达式的运行结果。
6. Show Execution Point (显示当前执行点)
图标: ?? 或 ?? 快捷键: Alt+F10(Windows/Linux)、Option+Command+P(Mac) 作用: 跳转到当前程序执行的代码位置(特别适合在查看其他文件后快速回到当前断点)。
7. Drop Frame (回退当前栈帧)
图标: ?? 作用: 重置当前栈帧的状态,从当前函数重新执行一遍。这不会改变全局程序状态,仅适用于当前函数调用。
8. Stop (停止调试)
图标: ■ 快捷键: Ctrl+F2(Windows/Linux)、Command+F2(Mac) 作用: 停止调试会话,终止当前调试运行。
9. Mute Breakpoints (屏蔽断点)
图标: ???(小喇叭) 作用: 暂时禁用所有断点,但不删除。程序会无视所有断点直接运行。
10. View Breakpoints (查看断点列表)
图标: ??? 快捷键: Ctrl+Shift+F8(Windows/Linux)、Command+Shift+F8(Mac) 作用: 打开断点管理窗口,方便查看、启用、禁用或删除断点。
如法炮制,下面是Run kind另外两种调试:
Run kind :Package



Run kind :File




2. 附加到进程

1:安装插件
go install github.com/google/gops@latest


2:编译指定参数
go build -gcflags="all=-N -l" -o demo.exe

3:附加到进程





3. 远程调试

1:设置编译环境变量
$Env:CGO_ENABLED=0;$Env:GOARCH="amd64";$Env:GooS="linux"

2:编译运行文件
# 命令二选一皆可以 go build -o main .main.go go build -gcflags="all=-N -l" -o main

3:上传到服务器执行(使用ftp工具或者rz命令上传都行)
sudo chmod +x main

4:服务器需要安装go环境,这里不讲解,自行安装

5:服务器安装调试工具,进行进程监控转发,远程调试
go install github.com/go-delve/delve/cmd/dlv@latest

6:配置远程调试
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./main -- -j=10






下面是远程调试的另一种方式
1:通过进程id监控
ps -aux | grep main //查看进程信息 dlv --listen=:2345 --headless=true --api-version=2 attach 898805 //添加进程


2:进入debug

http://www.jsqmd.com/news/211985/

相关文章:

  • 2026年乌镇黑科技,AI眼镜解放双手,逛展不用愁!
  • Google广告频繁被拒如何解决?附解决与防封指南
  • 【课程设计/毕业设计】基于python深度学习训练鲜花识别基于python训练鲜花识别
  • authfwcfg.dll文件丢失找不到 打不开问题 免费下载方法分享
  • AuthFWGP.dll文件丢失找不到 打不开问题 免费下载方法分享
  • 学长亲荐10个一键生成论文工具,专科生轻松搞定毕业论文!
  • AuxiliaryDisplayApi.dll文件丢失找不到 打不开问题 免费下载方法分享
  • AuxiliaryDisplayApi.dll文件丢失找不到 打不开问题 免费下载方法分享
  • 大模型面试题48:从白话到进阶详解LoRA 中 r 和 alpha 参数
  • python_flask汽车销售推荐交流系统小程序_61iro583
  • batmeter.dll文件丢失找不到 打不开问题 免费下载方法分享
  • AuxiliaryDisplayCpl.dll文件丢失找不到 打不开问题 免费下载方法分享
  • 深度解析:为什么传统操作系统的最小权限原则在智能体世界失灵?
  • 云平台一键部署【FunAudioLLM/Fun-ASR-Nano】音乐背景下歌词识别
  • 告别GPT-4o付费焦虑,Moonshot视觉模型带你飞!
  • 基于STM32的智能鞋柜设计
  • azroleui.dll文件丢失找不到问题 免费下载方法分享
  • Go环境搭建(vscode调试)
  • Golang 构建学习
  • 深入解析DDR内存原理、测试方法及在嵌入式系统中的应用
  • 【异常】Unable to create ‘/.git/index.lock‘: File exists. Another git process seems to be running
  • C语言全景解读:从诞生到现代应用,揭秘其核心优势、编程技巧与开发实践
  • docker拉取mysql5.7镜像报错Error response from daemon Get “httpsregistry-1.docker.iov2“
  • docker启动redis
  • 智能体迈入 Agent RL 新架构时代,非常详细收藏这一篇就够了
  • 多模态基础篇VLMo详解,非常详细收藏我这一篇就好了
  • Docker部署Spring Boot + Vue项目
  • docker设置redis密码
  • FlinkCDC实战:将 MySQL 数据同步至 ES
  • Go-Gin Web 框架完整教程