前言
Apinto自发布以来,因它拥有优异的性能表现,可插拔的插件机制,高可用的集群设计等优点,得到了广大用户的亲睐。
其中,有部分使用者更是想基于Apinto进行二次开发和迭代,但由于Apinto是多进程程序,传统方法不方便debug排查,造成开发上排查问题困难。
为此,我们总结了不同系统Debug Apinto的方法,期望能够更好地帮助大家进行学习和开发。
不同系统debug方式大同小异,windows也可以进行debug,不过需要安装wsl2、ubuntu和可视化界面,相对比较麻烦。
前提
环境描述
操作系统: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