草庐IT

BeanShell断言

全部标签

c++ - boost::asio::streambuf 断言 "iterator out of bounds"

客户端向服务器发送大约165kB的数据。起初一切都很好。但是当客户端再次发送相同的数据(165kB)时,我在服务器端收到一个断言。断言包含有关“迭代器越界”的信息在调用堆栈上,有一些关于read_until方法的信息。所以我认为我犯了一个错误。TCP异步服务器代码如下:handle_read代码:voidSession::handle_read(constboost::system::error_code&a_error,size_ta_nbytestransferred){if(!a_error){std::ostringstreamdataToRetrive;dataToRetri

c++ - 如何在 Visual Studio 2012 中查看断言失败的 C++ 堆栈跟踪?

当我的断言在visualstudio2012中失败时如何查看堆栈跟踪?如果我附加到一个进程,它会按预期工作,但是当我使用F5(调试)构建时,我的断言发生了,给我“中止、重试、忽略”提示,但我没有在调试器。有什么方法可以在调试构建期间启用它,还是我总是必须构建然后附加到进程?我的assert只是一个简单的assert(1==2)让它失败并查看调用堆栈。 最佳答案 (转自评论)按下Retry按钮将激活调试器,允许您查看调用堆栈、局部变量等。 关于c++-如何在VisualStudio2012

C++ 调试断言仅在使用 VPTR 时失败

我想知道为什么在此处的一种情况下我在delete部分得到异常,而在另一种情况下却没有。没有异常(exception)情况#includeusingnamespacestd;classA{public:~A(){cout这里的输出是41..Adtor,因为A有1个字节用于标识,B有4个字节,因为intx。异常(exception)情况#includeusingnamespacestd;classA{public:~A(){cout这里的输出是41..Adtor,因为A有1个字节用于标识,而B有4个字节,因为它的虚拟析构函数需要vptr。但是delete调用(_BLOCK_TYPE_IS_

c++ - 调试断言失败_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

我遇到了这个问题:调试断言失败!文件:f:\dd\vctools\crt_bld\self_x86\crt\dbgdel.cpp第52行表达式“_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)我的程序正确地将所有值返回到我期望的屏幕,但是这个问题让我紧张...#include#include#includeusingnamespacestd;double*wsk1;double*wsk2;double*wsk3;double*kopiowanie(double*wsk1,double*wsk2,double*wsk3);double*zaladuj(doub

c++ - 将OpenCV图像格式改为matlab格式,调试断言__acrt_first_block == header

我正在尝试将OpenCV图像(类型为cv::Mat)转换为matlab样式格式,因为这是程序的其余部分所需要的。我正在使用以下代码来执行此操作:inlinedouble*ConvertCVImageToMATLABImage(Mat&CvImage){std::vectorColorChannels;//B,G,Rchannelscv::split(CvImage,ColorChannels);//remembertotranposefirstbecauseMATLABiscol-major!!!cv::transpose(ColorChannels[0],ColorChannels[

c++ - CPPUnit 数组断言

我对C++和CPPUnit有点陌生。有人能告诉我应该使用什么来断言数组值(将它们与预期进行比较)。我应该使用memcmp还是在CPPUnit、一般的C++或任何其他库中有更好的东西? 最佳答案 在现代C++中,我们将数据范围与std::equal进行比较. 关于c++-CPPUnit数组断言,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4369773/

c++ - cvtColor 断言失败(带有 C++ 的 OpenCV)

我有一个cv::Matimage;对象,我从一个文件中加载了一个图像,它正确地读取了它。现在我已经编写了一个将它转换为灰色的函数。cv::cvtColor(image,image,CV_RGB2GRAY);出现这个错误:OpenCVError:Assertionfailed(scn==3||scn==4)incvtColor,file/build/buildd/opencv-2.3.1/modules/imgproc/src/color.cpp,line2834terminatecalledafterthrowinganinstanceof'cv::Exception'what():/

c++ - 有没有办法指定或断言子类必须重新实现特定的非抽象虚方法?

这就是我的意思。我有一个类层次结构:classA{virtualintf()=0;};classB:publicA{intf()override{return5;}voiddoSpecificStuff(){}}B是一个自给自足的类,可以单独使用。但它也有很多后代:classC:publicB{intf()override{return171;}}有什么方法可以确保在子类化B时不会忘记重新实现f吗? 最佳答案 此解决方案的灵感来自@dyp的评论:你可以拆分B的两个职责,即“提供B风格的实现”和“可以被实例化”。classB_for_

c++ - 调试断言失败。C++ vector 下标超出范围

下面的代码应该删除vector中的重复值。例如,如果vector包含{1,5,3,3},则结果应为{1,5,3}。程序启动,我输入整数n*。但是,程序会抛出以下错误:Debugassertionfailed.Program:...\include\vectorline:932Expression:vectorsubscriptoutofrange.当我按下重试时,visualc++显示一个新窗口:"try.exehastriggeredabreakpoint".然后,我点击继续后,出现另一个错误:DebugAssertionFailed!Program:...\include\vect

c++ - 如何在 Visual C++ 中查找导致调试断言错误的行/方法

我正在开发一个有时会在vector上抛出调试断言错误的程序,更具体地说,错误是:表达式:vector迭代器不可解引用问题是我不知道发生此错误的行或方​​法。在错误发生之前,我不希望手动单步执行/中断我的程序。我正在寻找导致此错误的行号或至少是方法。我正在使用VS2010提前致谢 最佳答案 当它崩溃时,点击“重试”,然后点击“中断”。然后查看堆栈跟踪并“向下”直到您到达代码中的某个点。这将向您显示崩溃前调用的代码中的最后一个位置。 关于c++-如何在VisualC++中查找导致调试断言错误