Go 全栈开发
二、Goland IDE 安装
创建项目
-
下载地址
https://www.jetbrains.com/zh-cn/go/ -
创建项目
选择项目路径,及配置GOROOT路径 -
创建项目后,检查配置项设置
选择菜单 file->setting
查看GOROOT配置路径
查看GOPATH 配置内容
查看GO Modules 配置内容 -
添加main包 及 main函数go文件
本地调试
点击加号可以创建一个运行环境,Run kind 标识运行的类型:Package 表示编译那个包,Directory 表示编译那个目录,File 表示编译那个文件;Output directory:编译结果输出目录;Working directory:工作目录;Environment:环境变量;Program arguments:程序参数
Package:
File:
Directory:
配置好后就可以运行项目了。
可以进行debug 调试。
附加到进程
- 安装gops 插件
go install github.com/google/gops@latest
命令行中运行项目,点击菜单Run->Attach to Process 查看go 进程信息
- 编译可执行文件
# 编译文件,并指定 -gcflags="all=-N -l"
go build -gcflags="all=-N -l" -o demo.exe
# 运行可执行文件
./demo.exe
- 附件到进程
打断点,下面断点生效
远程调试
- 安装dlv
# 远程主机上安装dlv 插件
go install github.com/go-delve/delve/cmd/dlv@latest
- 编译可执行文件
# 设置环境变量,编译linux 下的执行文件
$Env:CGO_ENABLED=0;$Env:GOARCH="amd64";$Env:GOOS="linux"
# 编译
go build -gcflags="all=-N -l" -o demo
- 远程机器上运行可执行文件
方式一
# 直接使用dlv工具运行可执行文件
dlv --listen=:2345 --headless=true --api-version=2 exec ./demo
方式二
# 附加到进程,附加到进程涉及到内核安全,需要设置相关的选项
dlv --listen=:2345 --headless=true --api-version=2 attach <PID>
# 打开文件
sudo vim /etc/sysctl.d/10-ptrace.conf
# 设置选项
kernel.yama.ptrace_scope = 0
# 应用更改项
sudo sysctl -p
- golang远程调试配置
Name: 名称
Host:被调试的主机IP
配置完成后 点击debug 按钮运行接口,可以看到远程机上面运行的日志信息
debug 按钮说明:
1:代表重新开始
2:查看断点信息
3:禁用断点
4:控制台
5:定位程序当前执行的位置
6:F8 下一步,如果是方法也不会进去,一行一行往下走
7:F7 进入操作步骤,即如果调试代码是方法,则进入方法逐步执行
8:shift + F8 跳出步骤,与7 是相反的操作
9:Alt + F9 运行到光标处,即鼠标点选的代码行