每天資訊VS2022除錯新功能:使用LLDB附加到遠端程序

菜單

VS2022除錯新功能:使用LLDB附加到遠端程序

現在,你可以在Visual Studio中使用[Attach to Process]功能來使用GDB或者LLDB附加一個遠端程序。在Visual Studio 2019的時候,我們就已經添加了一項對附加到遠端GDB除錯系統上的程序的支援。在最新版本的Visual Studio 2022 預覽版3中,我們繼續添加了對附加LLDB除錯程序的支援,下面我們來具體看看。

Visual Studio中的遠端除錯功能對於團隊開發來說特別有用,特別是當開發團隊需要編寫能夠在Windows,Linux或者macOS上執行的跨平臺程式碼的時候。舉個例子,如果你使用Windows + Visual Studio作為你的主要開發環境,然後你可能需要在一臺Linux或者macOS系統上除錯你的程式碼。你可以直接使用Visual Studio中的遠端除錯功能來直接進行遠端除錯,而不需要切換到目標系統上使用命令列來進行GDB或者LLDB除錯。Visual Studio自帶的遠端C++除錯元件會假定你的原始碼位於本機Windows檔案系統中。

雖然以一種原生的,面向命令列驅動的工作流程可能對於開發團隊來說也許是最佳選擇,但是我們透過反饋得知:

> 有些開發團隊對於平臺特定的工具不是很熟悉,尤其是他們已經熟悉了Windows + Visual Studio作為主開發環境的情況下。

> 有些開發團隊更加傾向於使用圖形化介面進行程式碼除錯,而不希望使用命令列。

> 在目標系統和開發環境系統中來回切換,不是那麼高效。

> 有些開發團隊依靠那些熟悉命令列工具的開發人員來除錯所有非Windows錯誤,他們希望使程式碼除錯能讓更多的開發人員所熟練使用。

接下來我們看看如何使用Visual Studio 2022來遠端除錯一個LLDB附加的程序。

操作步驟

1。 在Windows上,安裝Visual Studio 2022 預覽版3。

2。 在遠端系統上,安裝LLDB和LLDB-mi。在macOS上,你可以安裝XCode LLDB或XCode 命令列工具。你可以安裝一個由VS Code C/C++擴充套件所維護的LLDB-mi元件。

我們目前沒有維護Linux版本的LLDB-mi二進位制版本。你可以從C/C++擴充套件中的iamWing所給出的步驟來安裝LLDB和LLDB-mi。

3。 在遠端系統上,執行SSH並啟動你希望除錯的程序。

4。 在Windows上,開啟Visual Studio 2022,並選擇選單中的[Debug > Attach to Process…]。

> 設定[Connection type] 為 SSH。

> 設定[Connection target]。你可以在Visual Studio的Connection Manager中選擇任意一家新增的目標系統。或者提供一個新的目標系統的地址和登入賬號來新增一個新的系統連線。

> 設定為 Native(LLDB)。如果你使用GDB來進行遠端除錯,請將code type設定為Native(GDB),如下圖所示:

VS2022除錯新功能:使用LLDB附加到遠端程序

> [list of available processes]會列出目標系統中的所有程序名稱和ID。選擇你希望除錯的程序然後點選[Attach]即可將程序附加到偵錯程式,如下圖所示:

VS2022除錯新功能:使用LLDB附加到遠端程序

5。 Visual Studio將會附加LLDB到你選擇的程序,並開始除錯會話。你可以直接暫停除錯並設定當前執行點。所有在Visual Studio中支援的除錯視窗都可以在遠端除錯中繼續使用,如以往一樣。

總結

我一直沒有學會GDB的命令列除錯,這次Visual Studio引入圖形化介面,代替了命令列,對於我這種人來說,的確是太棒了。

終於舒坦了。

最後

Microsoft Visual C++團隊的部落格是我非常喜歡的部落格之一,裡面有很多關於Visual C++的知識和最新的開發進展。大浪淘沙,如果你對Visual C++這門古老的技術還是那麼感興趣,則可以經常去他們那(或者我這)逛逛。

本文來自:《Attach to a Remote Process with LLDB in Visual Studio 2022 Preview 3》

最近我寫了個東西

正如你們所知道的,拓撲梅爾智慧辦公平臺(Topomel Box)是一款綠色軟體,主要面向經常使用電腦的朋友。它提供了各種提升辦公效率的小功能,同時操作上儘可能地簡單方便。

我想:你值得擁有。

VS2022除錯新功能:使用LLDB附加到遠端程序