MonoDevelop 的續集dotdevelop

张善友發表於2024-09-15

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進行除錯,你需要按照以下步驟進行配置:

  1. 安裝必要的外掛和工具

    • 首先,確保你已經安裝了Visual Studio Code,並且已經安裝了.NET Core SDK。
    • 在VSCode中,你需要安裝一些必要的擴充套件,例如C#擴充套件。這些擴充套件可以幫助你更好地編寫和除錯C#程式碼。
  2. 配置launch.json 檔案

    • 開啟你的專案根目錄下的.vscode資料夾,如果不存在則需要手動建立。
    • 建立一個名為launch.json 的檔案。這個檔案定義瞭如何啟動和除錯你的應用程式。
    • launch.json 檔案中,你可以指定偵錯程式的型別為netcoredbg,並設定其他相關的除錯選項,如斷點、條件斷點等。
  3. 啟動netcoredbg偵錯程式

    • 使用命令列啟動netcoredbg偵錯程式。可以透過在終端中輸入netcoredbg --server=port_num來啟動偵錯程式監聽指定的TCP/IP埠(如果不指定,預設使用TCP 4711)。
    • 確保你的VSCode配置正確指向了這個偵錯程式例項。
  4. 執行和除錯你的應用程式

    • 在VSCode中,透過點選左下角的“執行”按鈕或者按快捷鍵F5來啟動除錯會話。
    • VSCode將自動連線到netcoredbg偵錯程式,並開始執行你的應用程式。你可以設定斷點、檢視變數值、單步執行程式碼等操作

多年來,除錯工具已經發展成為開發工具箱中不可或缺的一部分。有一篇文章《使用 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

相關文章