代码调试
文章平均质量分 81
zhengqijun_
You can do it! No can no BB!
展开
-
gdb调试命令的使用
1. gdb是一款功能强大的程序调试工具,它不仅能够启动被调试的代码,还能够让被调试的程序在指定位置停住等等。2. gdb调试常用命令run运行程序(如果有断点,会停在断点处)list查看代码(10行)break 20设置断点在20行next单步执行,但不会进入子原创 2016-07-09 15:20:33 · 1109 阅读 · 0 评论 -
玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest [转载]
一、前言“深入解析”对我来说的确有些难度,所以我尽量将我学习到和观察到的gtest内部实现介绍给大家。本文算是抛砖引玉吧,只能是对gtest的整体结构的一些介绍,想要了解更多细节最好的办法还是看gtest源码,如果你看过gtest源码,你会发现里面的注释非常的详细!好了,下面就开始了解gtest吧。二、从TEST宏开始前面的文章已经介绍过TEST宏的用法了,通过TEST宏,我们可以非法简单、方便的...转载 2018-07-03 12:09:23 · 268 阅读 · 0 评论 -
玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数 [转载]
一、前言使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。二、基本介绍前面提到,对于运行参数,gtest提供了三种设置的途径:1. 系统环境变量2. 命令行参数3. 代码中指定FLAG因为提供了三种途径,就会有优先级的问题, 有一个原则是,最后...转载 2018-07-03 12:08:01 · 677 阅读 · 0 评论 -
玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试 [转载]
一、前言“死亡测试”名字比较恐怖,这里的“死亡”指的的是程序的崩溃。通常在测试过程中,我们需要考虑各种各样的输入,有的输入可能直接导致程序崩溃,这时我们就需要检查程序是否按照预期的方式挂掉,这也就是所谓的“死亡测试”。gtest的死亡测试能做到在一个安全的环境下执行崩溃的测试案例,同时又对崩溃结果进行验证。二、使用的宏Fatal assertion Nonfatal assert...转载 2018-07-03 12:06:45 · 258 阅读 · 0 评论 -
玩转Google开源C++单元测试框架Google Test系列(gtest)之四 - 参数化 [转载]
一、前言在设计测试案例时,经常需要考虑给被测函数传入不同的值的情况。我们之前的做法通常是写一个通用方法,然后编写在测试案例调用它。即使使用了通用方法,这样的工作也是有很多重复性的,程序员都懒,都希望能够少写代码,多复用代码。Google的程序员也一样,他们考虑到了这个问题,并且提供了一个灵活的参数化测试的方案。二、旧的方案为了对比,我还是把旧的方案提一下。首先我先把被测函数IsPrime帖过来(在...转载 2018-07-03 12:05:29 · 290 阅读 · 0 评论 -
玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制 [转载]
一、前言gtest提供了多种事件机制,非常方便我们在案例之前或之后做一些操作。总结一下gtest的事件一共有3种:1. 全局的,所有案例执行前后。2. TestSuite级别的,在某一批案例中第一个案例前,最后一个案例执行后。3. TestCase级别的,每个TestCase前后。二、全局事件要实现全局事件,必须写一个类,继承testing::Environment类,实现里面的SetUp和Tea...转载 2018-07-03 12:04:08 · 404 阅读 · 0 评论 -
玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言 [转载]
一、前言这篇文章主要总结gtest中的所有断言相关的宏。 gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是:1. ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。 2. EXPECT_* 系列的断言,当检查点失败时,继续往下执行。二、示例// int型比较,预期值:3,实际值:Add(1, 2)EXP...转载 2018-07-03 12:02:54 · 224 阅读 · 0 评论 -
玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest [转载]
1.The first sample: sample1 你把github上的项目导来之后,github地址:https://github.com/google/googletest,在目录:..(你的目录)\googletest-master\googletest\samples是你的samples文件夹。 在VS中创建项目:GtestSamples 把对应的代码加入到这里边:sample1.h、...转载 2018-07-03 10:40:31 · 225 阅读 · 0 评论 -
Google C++单元测试框架---Gtest框架简介(译文)[转载]
一、设置一个新的测试项目 在用google test写测试项目之前,需要先编译gtest到library库并将测试与其链接。我们为一些流行的构建系统提供了构建文件: msvc/ for Visual Studio, xcode/ for Mac Xcode, make/ for GNU make, codegear/ for Borland C++ Builder.如果你的构建系统不在这个名单上...转载 2018-07-03 10:35:48 · 284 阅读 · 0 评论 -
玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架 [转载]
一、前言上一篇我们分析了gtest的一些内部实现,总的来说整体的流程并不复杂。本篇我们就尝试编写一个精简版本的C++单元测试框架:nancytest ,通过编写这个简单的测试框架,将有助于我们理解gtest。二、整体设计使用最精简的设计,我们就用两个类,够简单吧:1. TestCase类包含单个测试案例的信息。 2. UnitTest类负责所有测试案例的执行,管理。三、TestCase类TestC...转载 2018-07-03 12:10:58 · 287 阅读 · 0 评论