Visual Studio 2015中使用gdb远程调试linux程序
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
Visual Studio 2015中使用gdb远程调试linux程序的更多相关文章
- visual studio 2015使用python tools远程调试maya 2016
步骤: 1. 去https://apps.exchange.autodesk.com/MAYA/en/Home/Index搜索Developer Kit并下载,maya 2016可以直接点击这里下载. ...
- Visual Studio 2015中的常用调试技巧分享
.NET 技术交流群:337901356 欢迎您的加入! 为什么要学习调试? 调试(Debug)是作为一个程序员必须要学会的东西,学会调试可以极大的提高开发效率,排错时间,很多人不喜欢调试,但我认为这 ...
- WebApi-路由机制 Visual Studio 2015中的常用调试技巧分享
WebApi-路由机制 一.WebApi路由机制是什么? 路由机制通俗点来说:其实就是WebApi框架将用户在浏览器中输入的Url地址和路由表中的路由进行匹配,并根据最终匹配的路由去寻找并匹配相应 ...
- [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git
[.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...
- ASP.NET 5系列教程 (五):在Visual Studio 2015中使用Grunt、Bower开发Web程序
基于Visual Studio 2015,你可以: 方便的管理前端包,如jQuery, Bootstrap, 或Angular. 自动运行任务,如LESS.JavaScript压缩.JSLint.Ja ...
- GitHub在Visual Studio 2015中获得TFS/VSO同等地位
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 在Visual Studio 2015中微软为GitHub提供了扩展插件,从而让GitHub ...
- Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用
Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用 Grunt和Gulp是Javascript世界里的用来做自动压缩.Typescript编译.代码质量lint工具.cs ...
- ASP.NET5之客户端开发:Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用
Grunt和Gulp是Javascript世界里的用来做自动压缩.Typescript编译.代码质量lint工具.css预处理器的构建工具,它帮助开发者处理客户端开发中的一些烦操重复性的工作.Grun ...
- 微软移除Visual Studio 2015中的UML
微软已经在Visual Studio 2015中移除了UML(Unified Modeling Language,统一建模语言),原因是该语言使用率过低.因此微软要优化产品结构,把好钢用在刀刃上. V ...
随机推荐
- I2C总线驱动框架详解
一.I2C子系统总体架构 1.三大组成部分 (1)I2C核心(i2c-core):I2C核心提供了I2C总线驱动(适配器)和设备驱动的注册.注销方法,I2C通信方法(”algorithm”)上层的,与 ...
- SDK | 声波传输
SDK | 声波传输 - 音频流生成 https://github.com/CloudSide/WaveTransSdk/tree/master/c/freq_util Objective-C: ht ...
- xib创建cell的两种方法
方法一:第一步:[self.collectionView registerNib:[UINib nibWithNibName:@"QGLShareBtnCell" bundle:n ...
- notepad++换行替换
- HDU1501 Zipper(DFS) 2016-07-24 15:04 65人阅读 评论(0) 收藏
Zipper Problem Description Given three strings, you are to determine whether the third string can be ...
- 关于BufferefReader.readLine()方法的理解
有以下代码: BufferedReader localReader = new BufferedReader(new InputStreamReader(System.in)); String ...
- hdu 5046 二分+DLX模板
http://acm.hdu.edu.cn/showproblem.php?pid=5046 n城市建k机场使得,是每个城市最近机场的距离的最大值最小化 二分+DLX 模板题 #include < ...
- SyntaxError: Non-ASCII character '\xe5' in file test.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
python的默认编码文件是用的ASCII码,而你的python文件中使用了中文等非英语字符. 在Python源文件的最开始一行,加入一句: # coding=UTF-8
- SQL分组合并
STUFF ( character_expression , start , length ,character_expression ) select TcodMedInst_GUID,stuff( ...
- MongoDB与SqlSugar与Ado.Net对比
SqlSugar NET 4.+ & .NET CORE 高性能 轻量级 ORM框架,众多.NET框架中最容易使用的数据库访问技术 MongoDB与MySql的安装省略...虽然遇到了一些意外 ...