it编程 > 前端脚本 > Golang

golang debug调试的实现

0人参与 2025-02-14 Golang

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:附加到进程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. 远程调试

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

在这里插入图片描述

到此这篇关于golang debug调试的实现的文章就介绍到这了,更多相关golang debug调试内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

您想发表意见!!点此发布评论

推荐阅读

Go语言中的map扩容机制

02-14

Gin+Gorm实现增删改查的示例代码

02-14

Go实现List、Set、Stack、Deque等数据结构的操作方法

02-14

golang如何使用gos7读取S7200Smart数据

02-14

go语言make初始化的实现

02-14

Go语言跨平台时字符串中的换行符如何统一?

02-14

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论