手把手教你如何使用VScode調試ceph-osd

前言: linux

本文以ceph osd部分爲例,爲您演示經過第三方社區提供的vscode 編輯軟件,對ceph osd進行進行圖形化單步調試以及配置操做。c++

vscode是微軟公司一個開源的編譯器具有輕量的特色,經過插件安裝方式提供了豐富的調試功能。一般 Linux環境的c/c++軟件開發使用GDB進行命令行調試,命令行操方式極其不方便。使用vscode 的圖形化界面可替代gdb 命令行 ,整個開發調試過程更加便捷。redis

 

1. 下載安裝windows的vscodeshell

在如下地址下載json

https://code.visualstudio.com/windows

安裝openssh (通常狀況不用本身手動安裝)服務器

若是須要遠程開發,Windows機器也須要支持openssh,若是本機沒有,會報錯ssh

報錯信息相似以下:編輯器

The terminal process command 'cmd.exe /c (type & exit /b 0' failed to launch

能夠到微軟官網上下載ssh。ui

如下內容中,ceph源碼路徑在~/ceph_soft/ceph目錄下,其編譯運行文件在~/ceph_soft/ceph/build/bin當中。啓動調試前須要中止本地的osd運行服務。

Windows10新版本會自帶,可是有的沒有自帶的就須要安裝

在安裝完成以後,點擊左側的Remote-SSH選項卡,再將鼠標移向CONNECTIONS欄,點擊出現的configure:

填寫linux服務器的ssh端口和用戶名(若是是默認的22端口可不用填寫)

按下ctrl + s 保存 而後鏈接

輸入密碼,總共有屢次輸入密碼的流程留意窗口變化

打開遠程服務器的文件夾

 

2. 遠程鏈接遇到的問題以及技巧

由於ceph工程文件數量衆多會出現 沒法在這個大型工做區中監視文件更改。請按照說明連接來解決此問題的問題

緣由:工做區很大而且文件不少,致使VS Code文件觀察程序的句柄達到上限。

解決方法

編輯linux服務器中的 /etc/sysctl.conf

將如下一行添加到文件末尾,能夠將限制增長到最大值

fs.inotify.max_user_watches=524288

保存以後 輸入sysctl -p可解決,在最左上欄查看(V) -> 終端能夠調出終端窗口對Linux服務器輸入命令。

 

3. 遠程調試

首先前提Linux服務器已經安裝了GDB,不然會提示出錯。

在ceph工程目錄下添加launch.json文件。在最左上欄運行(R) -> 添加配置 ,注意必定要在ceph當前工程目錄。

修改配置launch.json中的program、args選項。

{
    // 使用 IntelliSense 瞭解相關屬性。 
    // 懸停以查看現有屬性的描述。
    // 欲瞭解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "osd-debug", //名字隨便
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/bin/ceph-osd", //這裏要修改
            "args": ["-d", "--cluster", "ceph","--id", "0", "--setuser", "root", "--setgroup", "root"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "爲 gdb 啓用整齊打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

按照下圖點擊就能夠開始調試之路

 

4. 免密碼登陸方法

1.以管理員模式打開powershell 輸入ssh-keygen 生成一對密鑰對

2.拷貝C:\Users\用戶名.ssh目錄下的id_rsa.pub到服務器上除了.ssh/目錄的任意地方。注意:不要覆蓋服務器下的.ssh/id_rsa.pub

3.在服務器上執行cat id_rsa.pub >> ~/.ssh/authorized_keys 當前服務器用戶目錄的的.ssh

簡單來講就是把電腦上的id_rsa.pub 添加到服務器下的authorized_keys文件中。

 

結束

設置vscode 遠程鏈接到Linux 服務器環境並不複雜,簡單幾個步驟即可從GDB黑框框界面中解脫,圖形界面編輯器的調式方法使從代碼上分析cpeh、redis 這類大型C/C++工程更加駕輕就熟。

相關文章
相關標籤/搜索