VS的debug功能非常強大,相比而言linux上的圖形化調試一直不是很好用。
如果可以使用VS來調試linux程序,應該是一件比較愉快的事情。
這在2015中變得可能,因為從2015開始VS支持Android、iOS開發和調試。
雖然並沒有正式提供linux程序的調試支持,但是可以通過一些技巧達到
微軟開源了MIEngine項目,通過Machine Interface ("MI")與gdb、lldb交互。
VS通過該MIEngine即可調試linux程序(visual studio code的cpptools插件也集成MIEngine)。
MIEngine的wiki有篇文章介紹了調試步驟。Start debugging other platforms using the MIEngine
不過由於文章較為簡略,還是踩了點坑
- 首先在linux主機(虛擬機)上使用-g編譯c++代碼
- 下載plink,並測試ssh可以登錄
- VS2015在安裝時需要勾選交叉平台手機開發下面的Visual C++手機開發
- 新建一個c++ makefile項目,把源碼添加到項目中
- 新建一個debug.xml文件,輸入以下內容
<PipeLaunchOptions xmlns="http://schemas.microsoft.com/vstudio/MDDDebuggerOptions/2014"
PipePath="plink.exe" PipeArguments="-pw 123456 user@server -batch -t gdb --interpreter=mi"
ExePath="/home/user/YourDir/exe" ExeArguments=""
TargetArchitecture="X64" WorkingDirectory="/home/user/YourDir" AdditionalSOLibSearchPath="">
</PipeLaunchOptions>
需要注意:
- plink需要在系統path中,如果plink無法找到,會彈窗提示無法找到文件
- plink支持password和ppk兩種方式登錄
- 打開 view -> other window -> command window
- 輸入命令
`Debug.MIDebugLaunch /Executable:foo /OptionsFile:d:\debug.xml`
- 有些過時的教程使用GDBLaunch,已廢棄
- foo 名字自定義,不重要
- OptionsFile 需要絕對路徑,如果找不到OptionsFile,則報錯
Options file '*.xml' does not exist
