官术网_书友最值得收藏!

3.5 Debug Adapter Protocol

相信讀者朋友已經(jīng)對Language Server Protocol有了一定的了解。我們現(xiàn)在再來了解一下Debug Adapter Protocol(DAP),相信讀者一定會發(fā)現(xiàn)它們兩者之間的異曲同工之妙。

DAP是一個基于JSON的協(xié)議,它抽象了開發(fā)工具與調(diào)試工具之間的通信。那么,我們?yōu)槭裁匆褂肈AP呢?

在沒有DAP之前,試想一下,如果需要對一門新語言添加調(diào)試的支持,那么就要對許多基本的調(diào)試功能進(jìn)行支持:

○ 各種類型的斷點

○ 變量查看

○ 多進(jìn)程及多線程支持

○ 調(diào)用堆棧

○ 表達(dá)式監(jiān)控

○ 調(diào)試控制臺

不僅如此,我們還要針對不同的開發(fā)工具重復(fù)這些工作,因為每一個開發(fā)工具都有不同的調(diào)試界面的API。如圖3-2所示,這會導(dǎo)致大量的重復(fù)勞動。

圖3-2 未使用DAP的情況

在Visual Studio Code項目建立之初,開發(fā)團(tuán)隊就意識到要把“前端的”界面與“后端的”與語言相關(guān)的實現(xiàn)進(jìn)行解耦。于是,對于語言功能,我們有了LSP,對于調(diào)試功能,我們有了DAP。

由于我們難以保證現(xiàn)有的調(diào)試工具能夠兼容DAP,因此Visual Studio Code開發(fā)團(tuán)隊設(shè)計了一個中間層的組件,也就是Debug Adapter,用來幫助現(xiàn)有的調(diào)試工具與DAP相兼容。圖3-3充分展示了使用DAP所帶來的好處:

○ Debug Adapter可以被不同的開發(fā)工具所使用,分?jǐn)偭碎_發(fā)成本。

○ DAP并不和Visual Studio Code進(jìn)行綁定,它是一個進(jìn)行開源開發(fā)的協(xié)議,可以作為其他開發(fā)工具開發(fā)通用調(diào)試界面的基礎(chǔ)。

圖3-3 使用DAP的情況

與LSP類似,如今,眾多主流語言都已經(jīng)有了相應(yīng)的Debug Adapter,許多編輯器/IDE也都支持了LSP,包括Visual Studio Code、Visual Studio、Eclipse IDE、Emacs、Vim、Cloud Studio等。完整的名單可以到參考資料[9]中進(jìn)行查詢。

主站蜘蛛池模板: 建昌县| 隆安县| 水城县| 丽水市| 东乡族自治县| 裕民县| 铁力市| 西充县| 昭苏县| 广宗县| 昌平区| 瓦房店市| 仪征市| 汝阳县| 监利县| 红原县| 涪陵区| 得荣县| 岑巩县| 宣威市| 马尔康县| 视频| 大化| 伊金霍洛旗| 漳平市| 临颍县| 杭州市| 广西| 桑植县| 佛山市| 永胜县| 武穴市| 融水| 汉寿县| 清河县| 沾化县| 皋兰县| 盱眙县| 赫章县| 财经| 千阳县|