草庐IT

fnon-call-exceptions

全部标签

C++ googlemocks : Getting a stack trace of an uninitialized call

模拟类看起来像这样:构造模拟类{MOCK_METHOD0(foo,void());};如果我忘记在模拟对象上设置预期的调用,我会得到这样的结果:GMOCKWARNING:Uninterestingmockfunctioncall-returningdirectly.Functioncall:foo()Stacktrace:并且堆栈跟踪为空。那么,为了获取堆栈跟踪必须做什么? 最佳答案 这描述了here:YoucancontrolhowmuchGoogleMocktellsyouusingthe--gmock_verbose=LEVE

C++ : How can I solve a first-chance exception caused at an unknown point?

我正在处理的一个C++项目在抛出第一次异常时终止。当我第一次尝试访问map,int>时,这发生在处于Debug模式的VisualStudio2008中其中包含单个键值对。代码在逻辑上没有任何错误。我已经阅读了有关第一次机会异常的信息,并且了解它们可能并不总是有问题。尽管如此,我尝试打破所有此类异常,并且正如预期的那样发现生成了几个不会导致问题的异常。我正在处理的类非常大并且包含许多自定义内存分配。我推测其中之一以某种方式导致了问题。然而,我花了几个小时试图找到一种方法来确定问题出在哪里,但一直无法做到。下面列出了第一次异常输出。这不是很有帮助!First-chanceexception

C++ : Calling a child method from parent instantiation

在我的代码中,我实现了这些类:classA{public:virtualintfun(){return0;}}classB:publicA{public:virtualintfun(){return1;}}还有这些函数:voidoperation(Aa){printf("%d\n",a.fun());}intmain(){Bb;operation(b);return0;}可以看到,B类继承了A类,并实现了虚继承方法fun()。主类调用一个以A为参数的函数,并调用fun()方法,参数为B对象。在执行时,我希望打印字符串"1",但它是"0"(即使它是传递给的B对象操作()).我需要这样做,

c++ - 如何保证在 Visual Studio 2005 下的 C++ 中捕获 EXCEPTION_STACK_OVERFLOW 结构化异常?

背景我有一个带有Poof-Crash[1]的应用程序。我相当确定这是由于堆栈损坏造成的。应用程序是多线程的。我正在使用“启用C++异常:是的,带有SEH异常(/EHa)”进行编译。我编写了一个SE翻译器函数并用它调用了_set_se_translator()。我已经为set_terminate()和set_unexpected()编写了函数并进行了设置。为了获得StackOverflow,我必须在高负载下以Release模式运行几天。在调试器下运行不是一种选择,因为应用程序的执行速度不足以达到查看问题所需的运行时间。我可以通过在执行其中一个函数时添加无限递归来模拟该问题,从而测试是否捕

c++ - GMock - 使用 ON_CALL 为重载方法返回默认值

我正在尝试为包含三个重载方法的类编写模拟,即:#include#includeusing::testing::_;using::testing::Return;using::testing::A;using::testing::ByRef;using::testing::Ref;using::testing::TypedEq;structFoo{intfooMethod(constint&intParam){return0;}intfooMethod(constfloat&floatParam){return0;}intfooMethod(conststd::string&string

c++ - Qt 5.5 与 qmake : Linker cannot resolve OpenGL function calls

当使用Qt5.5、qmake和MSVC13编译带有一些基本OpenGL函数调用的基本样板Qt应用程序时,出现以下链接器错误:glwidget.obj:-1:error:LNK2019:unresolvedexternalsymbol__imp__glClear@4referencedinfunction"public:virtualvoid__thiscallGLWidget::initializeGL(void)"(?initializeGL@GLWidget@@UAEXXZ)glwidget.obj:-1:error:LNK2019:unresolvedexternalsymbol

c++ - 错误 : pure virtual method called - terminate called without an active exception - Aborted

在我的A.h文件中:classA{private:unsignedshortPC;public:A():PC(0){}virtual~A(){}virtualvoidexecute(unsignedshortPC)=0;};在我的B.h文件中:classB:publicA{private:intstatus;boolexe;public:B:status(0),exe(false){}virtualB(){}voidexecute(unsignedshortPC);};在我的B.cpp文件中:#include#include"B.h"voidB::execute(unsignedsho

C++ 临时 - "pure virtual method called"

据我所知,下面的代码应该可以工作,但实际上没有。structbase{virtual~base(){}virtualvoidvirt()const=0;};structderived:publicbase{virtualvoidvirt()const{}};constbase&foo(){returnderived();}intmain(){foo().virt();return0;}调用virt()会出现“调用纯虚函数”错误。为什么会这样,我该怎么办? 最佳答案 您正在返回对临时对象的引用,该引用在return结束时函数结束时被破

c++ - C++错误代码vs ASSERTS vs Exceptions选项options :( [closed]

Closed.Thisquestionisopinion-based。它当前不接受答案。想要改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。4年前关闭。ImprovethisquestionCodeInquestion我已经听到(并且反驳)围栏两侧的C++异常口头禅。已经有一段时间了,我只想再次集中我自己,此讨论是特定于我链接的代码(或低级类,例如容器),它是依赖项。我曾经使用C程序员作为防御和error_code,但是这是一种令人厌烦的练习,并且我现在正在以更高的抽象级别进行编程。因此,我正在重写一个容器类(及其依赖项),以使其更灵活,读取效果更好(迭

c++ - CreateEx Causes Unhandled exception 被停用的激活上下文不是最近激活的

itsAnalysisDataTable.CreateEx(WS_EX_CLIENTEDGE,AfxRegisterWndClass(CS_DBLCLKS,LoadCursor(NULL,IDC_ARROW),(HBRUSH)::GetStockObject(NULL_BRUSH),NULL),"AnalysiysTable",WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_TABSTOP,dialogItemRect,this,IDC_ANALYSIS_DATA_TABLE);这一行花了我两天的时间没有解决。itsAnalysisDataTable是一个自定义窗口