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)以及基于内核的其他调试工具组成.内核类似于一个 ...
随机推荐
- antd-mobile的例子--cnode
antd-mobile 简单的例子 预览地址 https://shenggen1987.github.io/antd-mobile-roadhog/#/crm/pages/users githu ...
- 图片加载ImageLoader
https://github.com/nostra13/Android-Universal-Image-Loader public class AtguiguApplication extends A ...
- iOS UITableViewCell UITableVIewController 纯代码开发
iOS UITableViewCell UITableVIewController 纯代码开发 <原创> .纯代码 自定义UITableViewCell 直接上代码 ////// #imp ...
- Data Structure Graph: prim
最小生成树算法.这里的s是可以随意选取的,不影响树的生成,但是不同的s有不同的dis #include <iostream> #include <vector> #includ ...
- nginx 搭建虚拟主机
一.排错三部曲 第一步在客户端上ping服务端ip ping 10.0.0.8 第二部在客户端上telnet服务器端IP.端口 telnet 10.0.0.8 第三部在客户端使用wget命令检测 ...
- 圆方树&广义圆方树[学习笔记]
仙人掌 圆方树是用来解决仙人掌图的问题的,那什么是仙人掌图呢? 如图,不存在边同时属于多个环的无向连通图是一棵仙人掌 圆方树 定义 原先的仙人掌图,通过一些奇妙的方法,可以转化为一棵由圆点,方点和树边 ...
- FastReport5的安装
1.运行recompile.exe,选择相应的delphi版本,选择recompile to chinese,编译: 2.选择recompile all pakages,编译: 3.将lib目录下的d ...
- Delphi中 为DBNavigator的按钮加中文
Delphi中 为DBNavigator的按钮加中文 /*Delphi中数据库控件DBNavigator使用起来不错,但是按钮上“+”.“-”等含义对于中国的用户不习惯,甚至不知道是什么含义.改成相应 ...
- LINQ 学习路程 -- 查询操作 Deferred Execution of LINQ Query 延迟执行
延迟执行是指一个表达式的值延迟获取,知道它的值真正用到. 当你用foreach循环时,表达式才真正的执行. 延迟执行有个最重要的好处:它总是给你最新的数据 实现延迟运行 你可以使用yield关键字实现 ...
- UOJ78 二分图最大匹配
从前一个和谐的班级,有 nlnl 个是男生,有 nrnr 个是女生.编号分别为 1,…,nl1,…,nl 和 1,…,nr1,…,nr. 有若干个这样的条件:第 vv 个男生和第 uu 个女生愿意结为 ...