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

  

  本文总体介绍VisualGDB能给你带来哪些好处。

1 方便跨平台开发

VisualGDB和Visual Studio相结合,使得跨平台开发非常容易和简便。支持以下特性:

  • 嵌入式Barebone系统和IoT模块;
  • C/C++ Linux应用程序;
  • 原生Android应用程序及库;
  • Raspbery Pi及其他的Linux boards;
  • Linux内核模块(需要单独的VisualKernel产品);
  • 使用扩展API,可以将你的设备及平台作为目标。

支持VS2008-2017及其CE版本。

2 专注你的产品,而不是工具

VisualGDB将会自动安装和配置所需要的工具:

  • 嵌入式工具链;
  • 支持常用Linux boards的交叉编译器;
  • 支持基于Debian和RedHat Linux系统的编译器/调试器;
  • GDB Stub软件,比如 OpenOCD。

你所要做的,只是从列表中选择你的设备,然后就可以开发了。VisualGDB可以简便的导入已有的代码,能够简便的调试其他地方构建的代码。

3 集成高级CMake

VisualGDB支持高级的CMake项目子系统,在CMakeLists文件及Solution Explorer之间进行双向的同步,使你:

  • 简便地查看、添加、删除、编辑CMake targets;
  • 通过常规的VS Property页面,编辑targets settings;
  • 对于单独的targets,可以方便地添加、删除、重命名其sources;
  • 为targets配置高级的部署选项;
  • 对于复杂的项目,能够进行精确的IntelliSense配置;

对于高级的CMake项目,VisualGDB能够以SSH方式远程访问Linux机器上的源文件,而不需要每个文件的双份拷贝及其同步。

4 无缝支持Unit Tests

VisualGDB在VS中集成流行的CppUTest及GoogleTest框架,并提供简单的API来集成定制化的框架。在如下平台/设备上,简单的鼠标点击就可以运行/调试测试用例:

  • 使用JTAG/SWD接口的嵌入式ARM设备;
  • Linux机器及Linux board,比如Raspberry Pi;
  • Android设备。

5 强大的Linux profiling

VisualGDB能够对Linux程序进行动态分析。通过特征化scalable profiling数据库格式,VisualGDB使你方便的观察程序性能及程序中各个部分的关系。通过在函数树、全局函数列表、更详细的代码行之间进行切换,使你能够快速查找及比较你所需要的信息。

6 快速灵活地构建项目

VisualGDB包括一个高性能的MSBuild后端,它能够快速构建嵌入式项目、Linux项目及自动精确的IntelliSense。

如果你的项目已经使用了GNU Make,CMake或QMake,你可以简便地将其导入到VisualGDB中,并能自动管理你的IntelliSense和配置。

7 强大的调试经验

VisualGDB提供了和Visual Studio一致的调试经验,无论是本地调试,基于SSH的调试,基于JTAG的调试等。你只需要点击F5,剩下的就交给VisualGDB了。高级的调试特性包括:

  • Watch窗口中支持IntelliSense和预处理;
  • 为Linux调试提供内置的SSH终端及文件传送机制;
  • 输入你自己的GDB命令并记录命令时序

8 为复杂工具提供简单的接口

对于这些GNU/Linux下广泛使用的构建工具,VisualGDB提供了图形接口来编辑它们的通用配置,这些配置包括:

  • 图形化方式编辑Makefile,并同步源文件列表
  • 管理CMake targets及其配置;
  • 为Qt项目创建和维护QMake文件;
  • 为导入的大型CMake项目提供精确的IntelliSense;
  • 使用VisualGDB产生的Makefile文件,或者导入你自己的

9 和Team Foundation Server的集成

为了简便地、开箱即用地构建VisualGDB项目,VisualGDB提供了一个开源的TFS插件。只要在你的TFS构建服务器上安装这个插件,就可以简单快速地构建基于Make、CMake及QMake的VisualGDB项目,而不需要再单独安装Visual Studio。

10 方便地和你的团队分享配置

VisualGDB包含一个便利的机制,用于支持在整个团队里分享配置及预配置的信息。只需要简单地配置一个共享目录,所有使用这个共享目录的电脑就可以即时共享远程主机,匿名主机,工具链定义,嵌入式包,快速调试配置及通用的preferences。

只要在TFS构建服务器上配置团队settings,就不需要手动更新全局的settings了。

11 高级的IntelliSense

VisualGDB包括一个强大的、基于Clang的IntelliSense引擎,能够全面支持GCC-specific代码,并集成到Make、QMake及CMake。高级的特性包括:

  • 为新添加的方法提供实现代码;
  • 接口的自动实现;
  • 编辑驱动的重命名(Edit-driven renaming)(需要C++11支持);
  • 为了理解复杂的预编译宏,提供了预处理器透镜;
  • C++代码中,为函数、方法、变量等其他东西提供的Code Map;

VisualGDB系列1:VisualGDB总体概述的更多相关文章

  1. 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  2. MVC5网站开发之一 总体概述

    由于前几次都没能写完,这次年底总算有自由时间了,又想继续捣鼓一下.于是下载了VS 2015专业版(不知为什么我特别钟爱专业版,而不喜欢企业版).由于以前的教训,我这次决定写一个极简的Deom,简到什么 ...

  3. 深入理解javascript函数系列第一篇——函数概述

    × 目录 [1]定义 [2]返回值 [3]调用 前面的话 函数对任何一门语言来说都是一个核心的概念.通过函数可以封装任意多条语句,而且可以在任何地方.任何时候调用执行.在javascript里,函数即 ...

  4. Netty4.x中文教程系列(一) 目录及概述

    Netty4.x中文教程系列(一)目录及概述 Netty 提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. Netty是一个NIO客户端 服务端框架 ...

  5. Spring5.0源码学习系列之事务管理概述

    Spring5.0源码学习系列之事务管理概述(十一),在学习事务管理的源码之前,需要对事务的基本理论比较熟悉,所以本章节会对事务管理的基本理论进行描述 1.什么是事务? 事务就是一组原子性的SQL操作 ...

  6. VisualGDB系列4:概述-Linux程序与VS

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

  7. VisualGDB系列5:使用VS来开发Linux程序

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

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

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

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

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

随机推荐

  1. python中的一些坑(待补充)

    函数默认参数使用可变对象 def use_mutable_default_param(idx=0, ids=[]): ids.append(idx) print(idx) print(ids) use ...

  2. iOS UIImage UIImageView 展示图片 不变形 处理

    展示图片 时候 固定 了 imageView  的大小  图片 也裁剪了 尽量保持比例 可是 还是失真 变形了 这张图 ui 要求展示的UIimageView 大小 是固定 的  ,传过来的 图片 是 ...

  3. c的详细学习(6)函数

        根据模块化程序设计的原则,一个较大的程序一般要分为若干个小模块,每个模块实现一个比较简单的功能.在c语言中,函数是一个基本的程序模块.     (1)函数的基本概念: 1)基本介绍: 任何一个 ...

  4. Vue组件通信(传值)

    先介绍一下什么是组件把: 创建组件的两种方式: 全局组件 // 组件就是vue的一个拓展实例 let component=Vue.extend({ data(){ return{ //与vue实例中的 ...

  5. 有关java是编译型语言还是解释性语言

    博客分类: 技术杂谈 JavaD语言JVMC++C# 小生现在大二, java学习的时间不到一年 但是自认学习效率还是比较高的,同时在java上用时也比较多 在周末,放假,暑假. 每天能花费12+个小 ...

  6. poj piggy-bank

                                         Piggy-Bank Time Limit: 1000MS   Memory Limit: 10000K Total Subm ...

  7. SpringCloud之客户端连接Eureka集群

    客户端分别yml: ###服务启动端口号 server: port: 8002 ###服务名称(服务注册到eureka名称) spring: application: name: app-toov5- ...

  8. Netty使用LineBasedFrameDecoder解决TCP粘包/拆包

    TCP粘包/拆包 TCP是个”流”协议,所谓流,就是没有界限的一串数据.TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TC ...

  9. springmvc对象映射个数超过256个

    /** 由于Spring在接受前台传入的List时,就会出现256的IndexOutOfBoundsException异常 设置setAutoGrowCollectionLimit为1024 @par ...

  10. KISSY(JS)炫动导航,缓动应用实例(^_^)

    一个基于KISSY的简单的动画导航,效果还不错,有点像flash的效果.鼠标移到每一个连接上,背景滑块会迅速移到该链接下方,同时平滑改变大小,自适应链接尺寸,并伴随来回的轻微波动,动感相当不错,呵呵, ...