DotDevelop 是一個跨平臺的 .NET 整合開發環境(IDE),它原本是 MonoDevelop 的分支專案,這個專案更側重於 Linux 支援和 GTK3 升級,github:https://github.com/dotdevelop/dotdevelop[1]。MonoDevelop 是一個開源的跨平臺 C# 開發工具,而 DotDevelop 則是在此基礎上進行改進和擴充套件的一個新版本。
DotDevelop 專案一直維持著活躍的小型技術社群,並且隨著微軟宣佈關閉 Mac 版 Visual Studio IDE受到更多關注。此外,有開發者正在努力使其與最新的 Linux 版本和 .NET Core 版本相容,值得注意的是,儘管 DotDevelop 是基於 MonoDevelop 的復刻版本,但它在功能上進行了許多改進和擴充套件。例如,它使用 Gtk 來提供全功能的整合開發環境(IDE)。同時,GitHub 上也有相關的映象專案來支援其持續開發。
DotDevelop 使用的偵錯程式是三星的的.NET Core偵錯程式netcoredbg[2],這是Lex li 在2019年透過修改Samsung偵錯程式解決了這些問題,他寫了一篇文章詳細描述了這個過程:Samsung .NET Core Debugger and MonoDevelop[3]。Lex li還寫了幾篇Monodevelop 相關的文章:
關於 MonoDevelop 原始碼許可的總結[4]
MonoDevelop 的終結[5]
netcoredbg 是一個三星開源的用於除錯.NET Core應用程式的工具。它允許開發者在本地計算機上進行除錯,特別是在沒有網際網路連線的情況下查閱和使用相關文件。此外,netcoredbg 支援多種作業系統,例如Linux,使用者可以透過下載相應的包並解壓來安裝該工具。 它透過與VSCode除錯協議的參考實現,使得開發者能夠更方便地進行除錯操作。此外,netcoredbg 還可以與Windows除錯框架結合使用,在.NET程序內直接呼叫以進行深入的程式碼執行步驟分析。
netcoredbg 是一個功能強大的除錯工具,適用於.NET Core應用程式的開發和維護過程中,幫助開發者更好地理解和解決程式中的問題。
如何使用netcoredbg與VSCode進行除錯?
要在VSCode中使用netcoredbg進行除錯,你需要按照以下步驟進行配置:
安裝必要的外掛和工具:
- 首先,確保你已經安裝了Visual Studio Code,並且已經安裝了.NET Core SDK。
- 在VSCode中,你需要安裝一些必要的擴充套件,例如C#擴充套件。這些擴充套件可以幫助你更好地編寫和除錯C#程式碼。
配置launch.json 檔案:
- 開啟你的專案根目錄下的
.vscode
資料夾,如果不存在則需要手動建立。 - 建立一個名為
launch.json
的檔案。這個檔案定義瞭如何啟動和除錯你的應用程式。 - 在
launch.json
檔案中,你可以指定偵錯程式的型別為netcoredbg
,並設定其他相關的除錯選項,如斷點、條件斷點等。
- 開啟你的專案根目錄下的
啟動netcoredbg偵錯程式:
- 使用命令列啟動netcoredbg偵錯程式。可以透過在終端中輸入
netcoredbg --server=port_num
來啟動偵錯程式監聽指定的TCP/IP埠(如果不指定,預設使用TCP 4711)。 - 確保你的VSCode配置正確指向了這個偵錯程式例項。
- 使用命令列啟動netcoredbg偵錯程式。可以透過在終端中輸入
執行和除錯你的應用程式:
- 在VSCode中,透過點選左下角的“執行”按鈕或者按快捷鍵
F5
來啟動除錯會話。 - VSCode將自動連線到netcoredbg偵錯程式,並開始執行你的應用程式。你可以設定斷點、檢視變數值、單步執行程式碼等操作
- 在VSCode中,透過點選左下角的“執行”按鈕或者按快捷鍵
多年來,除錯工具已經發展成為開發工具箱中不可或缺的一部分。有一篇文章《使用 nvim-dap 在 Neovim 中除錯 C#》[6]中,詳細的介紹瞭如何在 Neovim 中為 .NET 程式碼配置除錯體驗。
相關連結:
- [1]dotdevelop: https://github.com/dotdevelop/dotdevelop
- [2]三星的的.NET Core偵錯程式netcoredbg:https://github.com/dotdevelop/netcoredbg
- [3]Samsung .NET Core Debugger and MonoDevelop:https://docs.lextudio.com/blog/samsung-net-core-debugger-and-monodevelop-80a6ea4bcab3
- [4]關於 MonoDevelop 原始碼許可的總結:https://docs.lextudio.com/blog/monodevelop-source-code-licensing/
- [5]MonoDevelop 的終結:https://docs.lextudio.com/blog/the-end-of-monodevelop-80b383dab34b
- [6]使用 nvim-dap 在 Neovim 中除錯 C# : https://aaronbos.dev/posts/debugging-csharp-neovim-nvim-dap