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
相关推荐
2601_966949651 天前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
晨曦中的暮雨1 天前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪1 天前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
Flynt1 天前
我把微信运动的排行榜和定点推送复刻了一遍:100万次步数更新只要4秒,坑在别处
redis·后端·性能优化
程序员清风1 天前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
2601_962885721 天前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
_孤傲_1 天前
快速掌握 MySQL 语法
数据库·后端·mysql
Wang's Blog1 天前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
下一站春风里1 天前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
IT_陈寒1 天前
Java静态变量初始化坑得我头皮发麻
前端·人工智能·后端