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

2.11 使用VisualGDB調試

VisualGDB是一款 Visual Studio 插件,安裝以后可以在 Windows 系統(tǒng)上使用 Visual Studio調試遠程Linux程序,這樣做的好處就是可以利用Visual Studio強大的代碼閱讀和調試功能。可能有讀者會說,從Visual Studio 2015開始,Visual Studio不是已經自帶調試Linux程序的功能了么?很遺憾,Visual Studio 2015或者2017自帶的調試Linux程序的功能很雞肋,調試一些簡單的Linux小程序還可以,調試復雜的或者有多個源文件的Linux程序就難了。VisualGDB 是一款功能強大的商業(yè)軟件,在本質上是利用 SSH 協(xié)議連接到遠程Linux機器,然后利用Visual Studio產生相應的gdb命令,通過遠程機器上的gdbserver傳遞給遠程gdb調試器。其代碼閱讀功能建立在samba文件服務器之上。

使用這個工具遠程調試Linux程序的方法有兩種,下面一一進行講解。

2.11.1 使用VisualGDB調試已經運行的程序

如果一個Linux程序已經運行,則可以使用VisualGDB的遠程attach功能。為了方便演示,我們將Linux機器上的redis-server運行起來:

安裝好VisualGDB插件以后,我們在Visual Studio的Tools菜單中選擇Linux Source Cache Manager菜單項,將彈出如下對話框。

單擊Add按鈕,配置需要調試的Linux程序所在的Linux機器地址、用戶名和密碼。

然后在Debug菜單中選擇Attach to Process...菜單項,將彈出Attach To Process對話框,對Transport類型選“VisualGDB”,對Qualifier選擇我們剛才配置的Linux主機信息。如果連接沒問題,則在下面的進程列表中會彈出遠程主機的進程列表,選擇剛才啟動的redis-server,然后單擊Attach按鈕。

這樣就可以在Visual Studio中調試這個Linux進程了。

2.11.2 使用VisualGDB從頭調試程序

更多的時候,我們需要從一個程序啟動處(main函數處)調試程序,例如學習Redis源碼時使用VisualGDB也是很方便的。在Visual Studio的DEBUG菜單中選擇Quick Debug With GDB菜單項,在彈出的對話框中配置Linux程序所在的地址和目錄。

再單擊圖中Debug按鈕,就可以啟動調試了。

我們的程序會自動停在main函數處,這樣就能利用強大的Visual Studio對redis-server進行調試了。當然,也可以在 VisualGDB提供的 GDB Session窗口中直接輸入 gdb的原始命令進行調試。

在VisualGDB中也存在一些缺點,調試Linux程序時可能會存在卡頓、延遲等現象。

主站蜘蛛池模板: 浦城县| 丰台区| 江油市| 凤山县| 杭州市| 张家界市| 察雅县| 孟连| 遂昌县| 仁化县| 周口市| 敦煌市| 汉川市| 怀安县| 东光县| 揭西县| 通州市| 色达县| 惠州市| 静乐县| 重庆市| 桂东县| 明溪县| 金秀| 鄂州市| 定襄县| 巨野县| 莫力| 无极县| 临澧县| 太原市| 江北区| 香港| 巴彦县| 增城市| 黑水县| 宜兰县| 曲周县| 拜城县| 金沙县| 图木舒克市|