如何在Visual Studio(2015)中增加堆栈尺寸的堆栈尺寸?异常代码:C00000FD
How to increase stack size for unmanaged unit test in Visual Studio (2015)? Exception code: C00000FD
我正在尝试在VS2015中创建一个单元测试项目。该项目是正确构建并运行的,直到我尝试创建一个大结构的局部变量。
我的代码看起来像:
#include "stdafx.h"
#include "CppUnitTest.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace testTxRxTest11ac
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
largeStructure largeStruct;
Assert::IsFalse(false);
}
};
}
当我删除最大的质量定义时,测试会通过。当我添加最大的理由定义时,它会在异常代码中失败:c00000fd。我搜索了此代码,发现它是堆栈溢出。
我试图增加测试项目的堆栈大小(属性 ->链接器 ->系统 ->堆栈储备大小)。
我还尝试在测试代码和stdafx.cpp中添加#pragma注释(链接,"/stack:10000000")。没有什么可用。
您还有其他建议如何处理此错误?
虽然这没有回答您的原始问题,但另一种方法是避免与大型班级完全使用堆栈。只需使用堆,这将使TestRunner堆栈空间不依赖。如果您想保留与基于堆栈的方法相同的RAII语义,则可以使用std :: unique_ptr。
相关文章:
- 对象接收堆栈溢出异常 c++ 的排序向量
- 堆栈上的 C++ 访问冲突写入异常
- 主函数执行时C++堆栈溢出异常
- Hinnant的堆栈分配器和异常
- 在使用 In Order 遍历成员函数时引发异常(堆栈溢出)时出现问题
- 在 Myfile.exe 中0x00831D39时未处理的异常:0xC00000FD:堆栈溢出(参数:0x0000000
- CUDA 编程未处理的异常和堆栈溢出
- C 堆栈溢出异常,可能是由于递归引起的
- 启用优化时的堆栈指针比较异常
- throw() 函数应该总是在异常时展开堆栈并允许捕获异常还是必须调用 std::terminate ?
- std::list 和 std::vector 中的堆栈溢出异常
- c++ 的除法的其余部分出现"堆栈溢出"异常
- 如何在Visual Studio(2015)中增加堆栈尺寸的堆栈尺寸?异常代码:C00000FD
- 捕获异常后的堆栈跟踪
- 我在程序中遇到堆栈溢出异常C++
- 堆栈溢出异常中c++和c#之间的差异
- 是否可以对构造函数抛出异常的对象进行异常处理,该对象的异常处理接近其基于堆栈的代码创建
- 在 C++/STL/MFC 应用程序启动早期发生的致命异常中,是否可以信任堆栈回溯符号名称?
- 程序在函数声明时崩溃,出现未经处理的异常:堆栈溢出
- 堆栈异常处理和析构函数展开.如何使用这些信息