根据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的更多相关文章

  1. VisualGDB系列11:Linux C++项目中使用外部Linux库

    根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 在<使用VS创建Linux静态库和 ...

  2. 使用VS+VisualGDB编译调试Linux程序

    Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第 ...

  3. VisualGDB系列10:快速调试Linux应用程序

    根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何快速调试GCC构建的Linu ...

  4. VisualGDB系列8:使用VS创建CMake Linux项目

    根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何使用VS来创建.构建.调试一 ...

  5. VisualGDB系列7:使用VS创建Linux静态库和动态库

    根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何在VS中创建静态库和动态库, ...

  6. VisualGDB系列6:远程导入Linux项目到VS中

    根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何将Linux机器上的Linu ...

  7. VisualGDB系列1:VisualGDB总体概述

    根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文总体介绍VisualGDB能给你带来 ...

  8. 应用 Valgrind 发现 Linux 程序的内存问题

    如何定位应用程序开发中的内存问题,一直是 inux 应用程序开发中的瓶颈所在.有一款非常优秀的 linux 下开源的内存问题检测工具:valgrind,能够极大的帮助你解决上述问题.掌握 valgri ...

  9. 应用 Valgrind 发现 Linux 程序的内存问题(转)

    Valgrind 概述 体系结构 Valgrind 是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成.内核类似于一个 ...

随机推荐

  1. antd-mobile的例子--cnode

    antd-mobile    简单的例子 预览地址 https://shenggen1987.github.io/antd-mobile-roadhog/#/crm/pages/users githu ...

  2. 图片加载ImageLoader

    https://github.com/nostra13/Android-Universal-Image-Loader public class AtguiguApplication extends A ...

  3. iOS UITableViewCell UITableVIewController 纯代码开发

    iOS UITableViewCell UITableVIewController 纯代码开发 <原创> .纯代码 自定义UITableViewCell 直接上代码 ////// #imp ...

  4. Data Structure Graph: prim

    最小生成树算法.这里的s是可以随意选取的,不影响树的生成,但是不同的s有不同的dis #include <iostream> #include <vector> #includ ...

  5. nginx 搭建虚拟主机

    一.排错三部曲 第一步在客户端上ping服务端ip  ping 10.0.0.8 第二部在客户端上telnet服务器端IP.端口  telnet 10.0.0.8 第三部在客户端使用wget命令检测 ...

  6. 圆方树&广义圆方树[学习笔记]

    仙人掌 圆方树是用来解决仙人掌图的问题的,那什么是仙人掌图呢? 如图,不存在边同时属于多个环的无向连通图是一棵仙人掌 圆方树 定义 原先的仙人掌图,通过一些奇妙的方法,可以转化为一棵由圆点,方点和树边 ...

  7. FastReport5的安装

    1.运行recompile.exe,选择相应的delphi版本,选择recompile to chinese,编译: 2.选择recompile all pakages,编译: 3.将lib目录下的d ...

  8. Delphi中 为DBNavigator的按钮加中文

    Delphi中 为DBNavigator的按钮加中文 /*Delphi中数据库控件DBNavigator使用起来不错,但是按钮上“+”.“-”等含义对于中国的用户不习惯,甚至不知道是什么含义.改成相应 ...

  9. LINQ 学习路程 -- 查询操作 Deferred Execution of LINQ Query 延迟执行

    延迟执行是指一个表达式的值延迟获取,知道它的值真正用到. 当你用foreach循环时,表达式才真正的执行. 延迟执行有个最重要的好处:它总是给你最新的数据 实现延迟运行 你可以使用yield关键字实现 ...

  10. UOJ78 二分图最大匹配

    从前一个和谐的班级,有 nlnl 个是男生,有 nrnr 个是女生.编号分别为 1,…,nl1,…,nl 和 1,…,nr1,…,nr. 有若干个这样的条件:第 vv 个男生和第 uu 个女生愿意结为 ...