VisualGDB系列4:概述-Linux程序与VS
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成。主要是作为个人学习记录。有错误的地方,Robin欢迎大家指正。
本文将会阐述如何使用VisualGDB来构建和调试Linux应用程序:涉及到哪些工具,以及它们之间是如何交互的。
后续博文会介绍如何使用VisualGDB来一步步构建Linux应用程序。
使用VisualGDB来构建和调试Linux应用程序涉及到两台电脑:一台是运行VS的Windows电脑,另一台是能够进行SSH访问的Linux系统电脑。

VisualGDB将如下任务无缝集成到VS中:
- 构建你的项目;
- 调试应用程序;
- 对Linux include文件进行IntelliSense支持。
1 源文件位置
使用VS创建基于VisualGDB的Linux项目时,VisualGDB向导允许你选择一个Linux电脑上的目录,该目录用于在Linux电脑上存储该项目。每个源文件会有两个实例:一个在Windows电脑上,另一个在Linux电脑上。默认的Linux目录是:/tmp/VisualGDB/<ProjectName>。
2 构建项目(build the project)
当使用VS构建Linux项目时,VisualGDB将会在后台做如下事情:
(1) 检查你是否添加、删除、重命名了源文件,如果是,就会自动更新Makefile文件;
(2) 检查是否引用了任何使用VisualGDB构建的库项目,如果是,则将其更新到Makefile文件中;
(3) 如果你要重新构建该项目,或者Linux电脑上不存在目标目录,那么所有的源文件将会发送到Linux电脑上。否则,VisualGDB只会检查最后一次构建之后哪些文件有了变化,并将这些变化了的文件发送到Linux电脑上;
(4) 最后,VisualGDB将会在Linux电脑上发起GNU make命令,从而让其构建你的应用程序;
(5) 如果GNU make或gcc报告了错误,VisualGDB将错误信息转换成VS格式,并显示到错误面板上。Linux文件名称会自动转换成相应的Windows文件名称。
3 调试应用程序
在VS中,当你使用GDB选择Debug->Start Debugging,VisualGDB将会在Linux电脑上发起一个gdb实例,并在后台控制它。使用VisualGDB进行调试,和使用VS调试一个普通的Windows应用程序没有什么区别:单步,watch窗口,调用栈,内存,汇编及其他的特性。VisualGDB会处理文件名称的转换。
然后,还可以通过GDB会话窗口来查看向GDB发送了哪些命令。如果你习惯了命令行调试,还能够发送你自己的命令。
4 IntelliSense支持
当你要创建或引入一个Linux项目,VisualGDB将会从远程电脑上查询标准的inclue文件位置,并将它们拷贝到你的Windows电脑上,然后添加到该项目的IntelliSense include位置。于是,code suggestion将会像Windows项目一样地工作。通过使用VisualGDB Project Properties窗口或Source Cache Manager,你也可以控制缓存目录。
VisualGDB系列4:概述-Linux程序与VS的更多相关文章
- VisualGDB系列11:Linux C++项目中使用外部Linux库
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 在<使用VS创建Linux静态库和 ...
- 使用VS+VisualGDB编译调试Linux程序
Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第 ...
- VisualGDB系列10:快速调试Linux应用程序
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何快速调试GCC构建的Linu ...
- VisualGDB系列8:使用VS创建CMake Linux项目
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何使用VS来创建.构建.调试一 ...
- VisualGDB系列7:使用VS创建Linux静态库和动态库
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何在VS中创建静态库和动态库, ...
- VisualGDB系列6:远程导入Linux项目到VS中
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何将Linux机器上的Linu ...
- VisualGDB系列1:VisualGDB总体概述
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文总体介绍VisualGDB能给你带来 ...
- 应用 Valgrind 发现 Linux 程序的内存问题
如何定位应用程序开发中的内存问题,一直是 inux 应用程序开发中的瓶颈所在.有一款非常优秀的 linux 下开源的内存问题检测工具:valgrind,能够极大的帮助你解决上述问题.掌握 valgri ...
- 应用 Valgrind 发现 Linux 程序的内存问题(转)
Valgrind 概述 体系结构 Valgrind 是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成.内核类似于一个 ...
随机推荐
- Linux中rpm包管理器
包全名: 1.操作的包是没有安装的软件包时,使用全名,而且要注意路径 2.例如:jdk-8u131-linux-x64.rpm包名: 1.操作的是已经安装好的软件包,使用包名,是搜索/var/lib/ ...
- Android系统字体规范
我们在做Android移动APP设计的时候,字号的选择也是很让人头疼,转载一份有关Android系统字体规范,如果在做Android项目的用户应该看看,如果有任何建议欢迎在留言处与我们交流探讨. 主要 ...
- GDI+在绘制验证码中的使用
GDI+最简单的理解就是用来绘图的.其中包括点.直线.矩形.字符串等等. 先简单来个例子,说明如何在winform窗体中绘制一条直线,并且这条直线不随着窗体的移动而消失. using System; ...
- Data Structure Binary Tree: Convert a given tree to its Sum Tree
http://www.geeksforgeeks.org/convert-a-given-tree-to-sum-tree/ #include <iostream> #include &l ...
- [原创]java WEB学习笔记34:Session 案例 之 解决表单重复提交
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Vue-Quill-Editor回显不显示空格的处理办法
我自己在用VUE做一个博客网站,查了一下好多人都在用Vue-Quill-Editor,于是我也把这个插件加入到我的程序里,可是后来却出现了个问题,如图: 简单的代码如下: <template&g ...
- parseInt、parseFloat、Number、Boolean、valueOf总结
parseInt(string, radix) 功能: 将字符串转换为十进制的数字 radix: string的进制,没有时根据string进行判断: 1~9开头 十进制 0x开头 16进制 0开头 ...
- UOJ278 【UTR #2】题目排列顺序
本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接: http://uoj.ac/co ...
- linux raid技术
一.概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意.是为了提高文件在磁盘上的读写速度而研究出来的. ...
- 基于js的网页换肤(不需要刷新整个页面,只需替换css文件)
1. [代码][JS]代码 <HTML><HEAD><link ID="skin" rel="stylesheet" typ ...