1 执行
go mod init leetcode
生成go.mod 和 go sum
2 创建main.go文件,Demo源码:
package main
import (
"fmt"
"leetcode/bak"
)
func main() {
fmt.Println("hello golang!")
bak.Cycle()
}
3 创建bak目录
$mkdir bak
$cd bak
4 创建bak1.go文件,Demo源码
package bak
import (
"fmt"
"os"
"time"
)
func Cycle() {
i := 0
for {
fmt.Println(i, os.Getpid())
if i == 1000000 {
break
}
i++
time.Sleep(time.Second)
}
}
5 编译测试
方法1
$ go build main.go
生成的是main程序
方法2
$ go build
生成的是leetcode
选择方法2
6 发布leetcode文件到远程主机:172.16.2.2
$ scp book@172.16.2.2:~
7 在172.16.2.2远程主机,执行leetcode
$ ./leetcode
1 1244669
2 1244669
其中,pid = 1244669
8 另外开启一个会话,在172.16.2.2远程主机,执行监听:
book@book-Latitude-5410:~$ dlv --headless -l 0.0.0.0:2345 attach 1244669 --api-version 2
API server listening at: [::]:2345
2023-03-23T10:19:17+08:00 warning layer=rpc Listening for remote connections (connections are not authenticated nor encrypted)
自定义的监听端口号:2345
9 本地的vscode添加配置,并修改
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Connect to server",
"type": "go",
"request": "attach",
"mode": "remote",
"remotePath": "${workspaceFolder}",
"port": 2345,
"host": "172.16.2.2"
}
]
}
10 设置断点,启动F5调试