vscode-go语言插件,分析(三)
goDebugConfiguration.ts 配置
GoDebugConfigurationProvider 实现vscode.DebugConfigurationProvider接口
goDebugFactory.ts 调试工厂
GoDebugAdapterDescriptorFactory 描述工厂,实现vscode.DebugAdapterDescriptorFactory接口
GoDebugAdapterTrackerFactory 跟踪器,能够读取记录调试器和vscode之间的通信
ProxyDebugAdapter 代理调试适配器,为调试器和vscode提供双向的数据流交互,实现vscode.DebugAdapter接口
DelveDAPOutputAdapter 处理Dap调试器的输入和输出,继承ProxyDebugAdapter
startDebugSession.ts 启动调试会话
关键
- vscode插件,继承dap协议基类实现接口。 相当于hook接管了调试器协议。
- 语言调试器服务实现了,json-rpc协议接口,提供返回相应的数据结构,就实现了调试器的功能。
- 调试器插件,负责启动命令行调试器服务。当然也可以直接与远端的调试器服务通信。
- 这一块儿,官方没有给出完整的介绍和说明,资料寥寥数语,代码云山雾绕,脱裤子放屁💨,delve插件代码多此一举,杀鸡用牛刀,耍花枪。