草庐IT

gtest_valgrind

全部标签

c++ - 使 valgrind 能够在 C++ 需要时读取用户输入

我正在尝试使用valgrind运行我的C++程序,但是我在程序中有一些点需要用户从stdin输入,但是当我使用valgrind运行时,它不会让用户为程序输入任何内容,是否有绕过这个?一直在四处寻找,但没有找到答案。 最佳答案 我没试过,但我在手册页中找到了这个:--input-fd=[default:0,stdin]Specifythefiledescriptortouseforreadinginputfromtheuser.Thisisusedwhenevervalgrindneedstoprompttheuserforadeci

cmake应用:集成gtest进行单元测试

编写代码有bug是很正常的,通过编写完备的单元测试,可以及时发现问题,并且在后续的代码改进中持续观测是否引入了新的bug。对于追求质量的程序员,为自己的代码编写全面的单元测试是必备的基础技能,在编写单元测试的时候也能复盘自己的代码设计,是提高代码质量极为有效的手段。  本文主要介绍以下几个方面的内容:  1、何为单元测试  2、何为gtest  3、怎么使用gtest  4、怎么运行测试一单元测试是什么?  单元测试(UnitTesting),一般指对软件中的最小可测试单元进行检查和验证。最小可测试单元可以是指一个函数、一次调用过程、一个类等,不同的语言可能有不同的测试方法,暂时不必深究。  

c++ - valgrind 改变二进制行为

我尝试使用valgrind追踪C++程序中的内存泄漏。该程序是用g++编译的,可以运行而不会抛出任何错误。不幸的是,valgrind以一种在抛出运行时错误后崩溃的方式改变了我的程序的行为。由于此崩溃发生在到达代码的相关部分之前,我没有机会追踪我的内存泄漏。整个问题由附加的控制台输出说明。myUser@computer:~$./myPrograminput.xmlProcessing...Finishedsuccessfully...----------------------HitEntertocontinue...myUser@computer:~$valgrind--leak-ch

c++ - 使用 C++11 std::condition_variable 的 Gtest 意味着 valgrind 错误

如果我以这种方式使用google测试框架编写测试:TEST_F(TestFName,TestName){std::condition_variablecv;}它会生成一个valgrind错误。我使用--leak-check=full--track-origins=yes选项运行它。Conditionaljumpormovedependsonuninitialisedvalue(s)==17215==at0x4E3DA82:pthread_cond_destroy@@GLIBC_2.3.2(pthread_cond_destroy.c:35)...Uninitialisedvaluewa

c++ - 如何在valgrind中为进程设置动态链接库路径和环境变量

我需要在运行时为进程设置LD_LIBRARY_PATH、LD_PRELOAD和一些环境变量,并使用Valgrind检测内存泄漏。谁能建议一种在valgrind中为进程设置或传递这些变量的方法? 最佳答案 我遇到了类似的问题,试图在需要与valgrind使用并一直在使用的库不兼容的库的程序上运行valgrind:valgrind--trace-children=yesenvLD_LIBRARY_PATH=your_library_pathOTHER_VAR=fooyour_programarg1arg2...env设置环境然后exec

c++ - 从 vector 中删除项目时出现 Valgrind 错误

对于你们中的大多数人来说,这可能看起来像是重复的。但是我花了很多时间来解决这个问题。实现了stackoverflow和其他编码站点中给出的许多解决方案。最后我设法修复了它,但我仍然不知道我的旧实现有什么问题。请帮助我找出导致确切错误的原因,查看我的旧代码、新代码、单元测试和valgrind错误。注意:我正在通过单元测试(Google测试框架)测试我的代码。使用C++11编译m_queue_是一个std::vector使用GoogleC++编码标准测试:队列有2个SAPA项目(由新运算符(operator)创建)通过id删除第一个项目(队列现在只有一个)删除唯一的项目由它的id留下第二次

主要gtest之前的c++段错误

我在main之前得到一个堆栈跟踪:#includeusingnamespacestd;intmain(intargc,char**argv){::testing::InitGoogleTest(&argc,argv);returnRUN_ALL_TESTS();}堆栈跟踪:程序收到信号SIGSEGV,段错误。0x0000000000000000在??()#00x0000000000000000in??()#10x00000000004e0b51instd::locale::_S_initialize()()#20x00000000004e0b93instd::locale::local

c++ - 我试过 : valgrind, _GLIBCXX_DEBUG,-fno-strict-aliasing;我该如何调试这个错误?

我有一个非常奇怪的错误,我花了几天时间试图弄清楚,所以现在我想看看是否有人有任何意见可以帮助我理解发生了什么。一些背景。我正在从事一个软件项目,该项目涉及使用Boost1.45向Python2.7.1添加C++扩展,因此我的所有代码都通过Python解释器运行。最近,我对破坏了我们的回归测试之一的代码进行了更改。这个回归测试可能对数值波动过于敏感(例如不同的机器),所以我应该解决这个问题。但是,由于此回归在产生原始回归结果的同一台机器/编译器上发生故障,因此我将结果的差异追溯到这段数字代码(可证实与我更改的代码无关):c[3]=0.25*(-3*df[i-1]-23*df[i]-13*

c++ - 构造函数采用参数时的GTest夹具?

我有一个简单的示例类。它有一个数据成员,它是一个指向Armadillo矩阵的指针的std::vector。构造函数将这样一个vector作为唯一的参数。这是文件TClass.cpp:#include#includeclassTClass{private:std::vectormats;public:TClass(std::vectorm_);arma::mat*GetM(intwhich){return(mats.at(which));};};TClass::TClass(std::vectorm_){mats=m_;}我想构造一个GTestfixture来测试成员函数GetM。这是我

c++ - 谷歌测试 Gtest.cc :812: error: 'gettimeofday' was not declared in this scope

我正在尝试通过命令行通过MinGW编译Google测试,但是当我尝试使用命令进行编译时gcc-ID:\gtest-ID:\gtest\include-ID:\gtest\include\gtestsrc\gtest_main.ccsrc\gtest-all.cc它抛出错误Gtest.cc:812:错误:'gettimeofday'未在此范围内声明我通过VisualStudio成功编译,所以我猜这不是代码的错误。还有其他人遇到过这个问题并且知道解决方案吗? 最佳答案 and是两个不同的包含