如何Debug Apinto微服务网关

前提

操作系统:linux/mac

Golang版本:1.17及其以上

IDEA:Goland

Linux

1、安装最新的gops

go install github.com/google/gops@latest

2、编写启动配置

上图红框处需要特别注意,需要和图中保持一致,此处设置了环境变量APINTO_DEBUG=true,开启Apinto的Debug模式。

如果选择在命令行编译程序,则在编译需要携带-gcflags="all=-N -l"参数,如下

go build -gcflags="all=-N -l" -o apinto

此文不再说明命令行编译程序的debug方法。

3、运行程序


此处需要选择Debug的按钮

4、Attach To Process

在弹出的进程列表中选择需要Debug的进程即可

注意 : Debug模式开启后,master进程名称为“apinto start”,当Debug模式关闭,master进程名称为“apinto: master”

Windows

由于Apinto 在实现restart、stop操作时,需要使用到linux系统的信号指令,Windows 上没有相关指令的支持,因此Apinto 不能直接在Windows 上编译运行。

若想在Windows 上启动,则需要在Windows 上安装Ubuntu 子系统。

安装ubuntu子系统

1、安装部署WSL2:安装WSL(一定要升级到WSL2,否则会有些不兼容的问题)

2、安装ubuntu可视化界面,具体教程请参考Ubuntu安装可视化界面

3、Debug程序,Linux Debug方法一致

MAC

与Linux Debug方法一致,若在arm架构上attach失败,无法找到对应的apinto进程,可以先将gops删除,再重新安装。

go install github.com/google/gops@latest