背景
今年年初,有幸参与了IDE 共建项目组, 打造阿里生态体系内的公共IDE底层,而作为一款面向开发者的IDE,调试能力的支持一定程度上决定着一款IDE的开发体验;VSCode作为微软体系下一款当前最热的IDE开发工具,在调试领域上的探索实践是很好的学习案例,有道是:借他山之石,逐已身之玉,故本文着力于分析VCode中调试功能的设计与实现,让后来的人可以较为简单的理解调试这件事情是如何做到的。
源码解析
了解VSCode中的实现,最简单的方式便是直接调试VSCode源码工程,到VSCode官方github下载对应源码工程;
调试技巧:在安装依赖后点击
调试
按钮,先点击Launch VS Code
,待VSCode-OSS
启动后打开一个简单的调试项目,再点击Attach to Extension Host
对ExtensionHost进程进行调试,此时便可针对调试的核心代码进行调试了。
从时序图我们可以看出,整个调试的流程无非就是简单的视图层到调试进程间的通讯,调试的核心在于在多个调试器中实现了统一的数据传输协议,即DAP(