用Visual Studio調試Linux程序

2021-02-20 高性能伺服器開發

用Visual Studio調試linux程序?

你真的沒看錯,這個是真的,不是標題黨。當然如果你說VS2015及以上版本自帶的linux調試插件,那就算了。這些自帶的插件調試一個有簡單的main函數程序還湊合,稍微複雜點的程序,根本無法編譯調試。
而本文介紹的主角是VS的另外一款插件Visual GDB,讓我們歡迎主角登場,下面是正文。

使用Visual Studio+VisualGDB調試遠程linux程序
需要工具:

Visual Studio 2013或以上版本(以下簡稱VS)

VisualGDB(一款VS插件,官網為:http://visualgdb.com/)

含有調試符號的linux程序文件(該程序文件為調試目標)

Visual Assistant(番茄助手,另外一款VS插件)

在VS上安裝完VisualGDB插件以後,有如下幾種方式來對遠程linux機器上的程序進行調試:

1

方法一、如果該程序已經啟動,則可以使用VS菜單【Debug】->【Attach to Process…】。

這種方法有個缺點是,不能從開始啟動的main函數處添加斷點,自始至終地調試程序,查看完整程序運行脈絡。

所以下面推薦方法二。

2

方法二、利用VS啟動遠程linux機器上一個linux程序文件進行調試。選擇VS菜單【Debug】 ->【Quick Debugwith GDB】。

需要注意的地方,已經在上圖中標紅框。這裡簡單地解釋一下:
如果你安裝了交叉編譯環境Target可以選擇MinGW/Cygwin,否則就選擇遠程linux系統。這裡如果不存在一個ssh連接,則需要創建一個。

Debugged program是需要設置的被調試程序的路徑,位於遠程linux機器上。
Arguments是該調試程序需要設置的命令行參數,如果被調試程序不需要命令行參數可以不設置。
Working directory是被調試程序運行的工作目錄。

另外建議勾選上Initial breakpoint in main,這樣啟動調試時,程序就會停在程序入口處。

這樣,我們就可以利用VS強大的功能去查看程序的各種狀態了,常用的面板,如【內存】【線程】【觀察】【堆棧】【GDB Session】【斷點】等窗口位於VS 菜單【Debug】->【Windows】菜單下,注意,有些窗口只有在調試狀態下才可見。這裡有兩個值得強調一下的功能是:

現在還剩下一個問題,就是我們雖然在調試時可視化地遠程查看一個linux進程的狀態信息,但很多類型的定義和什麼卻無法看到。

解決這個問題的方法就是你可以先在VS裡面建立一個工程,導入你要調試的程序的原始碼目錄。然後利用方法一或者方法二去啟動調試程序。這個時候你想查看某個類型的定義或什麼只要利用Visual Assit的查看源碼功能即可,快捷鍵是Alt + G。

需要注意的是:同時安裝了Visual Assist和VisualGDB後,後者也會提供一個go按鈕去查找源碼定義,但這個功能遠不如Visual Assist按鈕好用,我們可以禁用掉它來使用Visual Assist的Go功能。禁用方法,打開菜單:【Tools】->【Option…】:

然後重啟VS即可。

到這裡,既可以查看源碼,也可以調試程序了。

如果你需要VisualGDB,可以加我微信easy_coder獲取。

如果對後端開發感興趣,想加入 高性能伺服器開發微信交流群 進行交流,可以可以先加我微信 easy_coder,備註"加微信群",我拉你入群,備註不對不加哦

相關焦點

  • 使用visual studio 對mysql進行源碼級調試
    講故事上一篇說了mysql的架構圖,很多同學反饋說不過癮,畢竟還是聽我講故事,那這篇就來說一說怎麼利用visual studio 對 mysql進行源碼級調試,畢竟源碼面前,不談隱私,聖人面前,皆為螻蟻。二:工具合集mysql是C++寫的,要想在windows上編譯,還需要下載幾個必備小工具。
  • 應用:Linux中安裝Visual Studio Code
    # unzip /tmp/vscode/VSCode-linux-x64.zip -d /opt/  注意:如果沒有安裝unzip,首先需要通過軟體包管理器安裝它。如果運行Ubuntu,使用apt-get,如果運行Fedora、CentOS可以用dnf或yum安裝。
  • Visual Studio 2018
    Visual Studio 2018簡介 Visual Studio 2018是微軟推出的一款集程序設計網頁開發於一身的開發工具
  • 超好用的Visual Studio編程軟體,你在用嗎?
    寫代碼並不是年輕的專利用過很多編程軟體,最終還是覺得VS好用,果斷去下載安裝。visual studio不僅可以編寫C,C++,還可以編寫python,還可寫網頁等等語言,功能很強大。再次記錄下來,以便查看。1.搜索「visual studio」打開官網,點擊下載,我選擇的是community版本2.
  • 12個Visual Studio調試效率技巧
    在這篇文章中,我們假定讀者了解VS基本的調試知識,如:F11 步進到函數內(如果當前程序指針指向一個函數)調試窗口:局部變量、監視、即時窗口、模塊、調用堆棧、異常設置許多開發人員使用這個功能強大的工具包來處理調試會話。
  • Visual Studio Code 4 月 Python 擴展更新
    現在, 它支持實時重新加載 Django 和 Flask 等 Web 應用程式。對應用程式進行編輯時,無需重新啟動調試器即可進行應用。保存更改後,將在相同的調試會話中自動重新加載 Web 伺服器。  確保列印圖適合 PDF 頁面 (#9403)  支持使用 「esc」 或 「ctrl+u」 清除交互式窗口輸入框的內容 (#10198)  即使禁用遙測也可以使實驗正常進行 (#10008)  確保在單元執行和單元編輯之間保留單元中的用戶代碼 (#10949) 詳情見更新說明:https://devblogs.microsoft.com/python/python-in-visual-studio-code-april
  • visual studio 2005 team suite中文版到
    是目前最流行的 Windows 平臺應用程式開發環境。微軟visual studio 2005 team suite中文版FPP是2005 年發布的一個面向團隊的開發軟體,其提供支持整個軟體開發團隊的工具,讓架構師、開發人員、測試人員、項目管理等人員的工作能夠簡化,同時提高團隊的工作效率,讓開發工作得到有效的監控,是一個非常優秀的高度集成開發環境。
  • Linux 系統內核的調試
    調試內核問題時,利用這些工具與方法跟蹤內核執行情況,並查看其內存和數據結構將是非常有用的。  本文將首先介紹 Linux 內核上的一些內核代碼監視和錯誤跟蹤技術,這些調試和跟蹤方法因所要求的使用環境和使用方法而各有不同,然後重點介紹三種 Linux 內核的原始碼級的調試方法。1.
  • 技巧:Ubuntu中安裝Visual Studio Code
    微軟Build大會上,一款支持Windows、Mac OS X和Linux平臺的原生Visual Studio應用,名為「Visual Studio Code」讓人意外,筆者之前在《微軟推出VS Code支持Linux和OS X平臺》中介紹其功能支持linux平臺。
  • Microsoft Visual Studio
    這周為大家安利微軟公司的兩個經典版本的編譯開發環境軟體,visual C++6.0.本來我不太想放上去的,主要是看到後臺回復的有點兇,就花了點時間搜集並測試了一下
  • visual studio 2013 設置中文
    人多第一次下載visual studio 2013的人發現自己的visual studio 2013是英文的不知道如何設置語言本文教大家設置打開VS2013,發現界面是英文的我們進行設置為中文--------Options.....
  • 微軟Visual Studio 2019 v16.7 Preview 2 發布
    同樣,設置默認的遠程連接對於將 CMakeSettings.json 和 launch.vs.json 檢查到原始碼控制中非常有用,而無需用戶或計算機的特定信息。這些通過 SSH 的遠程連接使用戶可以直接從 Visual Studio 在遠程 Linux 系統上構建和調試 C++ 項目。
  • visual studio 2013下載及安裝使用教程(內附vs2013產品密鑰)
    IT考試網之前為大家整理分享過visual studio 2010下載以及安裝教程,反映最多的就是提示visual studio提示系統找不到指定文件怎麼辦
  • 程式設計師請收好:10個非常有用的 Visual Studio Code 插件!
    而且,在我看來,它是你能用到的最有用的插件之一。這個插件旨在幫助開發人員提供智能的代碼完成建議而構建的,並且已預先構建了對多種程式語言的支持。Visual Studio Intellicode使用機器學習技術來觀察和查找眾多開源GitHub項目中使用的模式,並在編碼時提供建議。Git Blame這是誰做的?!有時候,你需要知道是誰寫了這段代碼。
  • Linux下C應用程式開發
    GCC 提供了一個很多其他 C 編譯器裡沒有的特性, 在 GCC 裡你能使 -g 和 -O (產生優化代碼)聯用.. 這一點非常有用因為你能在與最終產品儘可能相近的情況下調試你的代碼. 在你同時使用這兩個選項時你必須清楚你所寫的某些代碼已經在優化時被 GCC 作了改動. 關於調試C 程序的更多信息請看下一節用 gdb 調試 C 程序 .
  • 用Android Studio動態調試手機QQ
    需要工具:Android Studiohttps://developer.android.com/studio/index.htmlApktoolhttps://ibotpeaches.github.io/Apktool/smalideahttps://github.com/JesusFreke/smali
  • 微軟將 Visual Studio Online 重命名為 Visual Studio Codespaces
    詳情查看 https://azure.microsoft.com/en-us/pricing/details/visual-studio-online/還有一個值得一提的功能是對自託管環境功能的巨大改進。
  • visual studio 2015怎麼把英文界面變成中文?
    visual studio 2015怎麼把英文界面變成中文界面?最新的vs2015,剛下載下來時是全英文界面,如何將它改成中文界面呢。下面介紹一下詳細的教程,需要的朋友可以參考下最新的vs2015,剛下載下來時是全英文界面,如何將它改成中文界面呢。
  • C/C++程序調試和內存檢測
    減少程序錯誤最有效的方法是:在敲代碼之前,多花點時間思考,如何構造程序,數據結構和算法,儘量把細節提前寫下來,可以嘗試著在紙上寫出核心代碼,這樣可以減少今後修改代碼的時間。1、常用的調試技巧(1)代碼檢查,重新閱讀程序,排除比較明顯的錯誤。
  • 微軟VS Code 或將取代 Visual Studio!
    參考連結:https://movingfulcrum.com/visual-studio-code-will-replace-visual-studio/————— 推薦閱讀 —————