Как увеличить размер стека для неуправляемого модульного тестирования в Visual Studio (2015)? Код исключения: C00000FD

Я пытаюсь создать проект Unit Test в 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);
}

};
}

Когда я удаляю определение LargeStructure, тест проходит. Когда я добавляю определение LargeStructure, оно завершается ошибкой с кодом исключения: C00000FD. Я погуглил этот код и обнаружил, что это переполнение стека.

Я попытался увеличить размер стека в свойствах тестового проекта (Свойства -> Линкер -> Система -> Резервный размер стека).

Я также попытался добавить комментарий #pragma (компоновщик, «/ STACK: 10000000») в тестовый код и в stdafx.cpp. Ничего не сработало.

У вас есть другие предложения, как бороться с этой ошибкой?

0

Решение

Хотя это не отвечает на ваш первоначальный вопрос, другой подход заключается в том, чтобы вообще не использовать стек вместе с вашим большим классом. Просто используйте кучу, которая сделает пространство стека testrunner ненужным. Вы можете использовать std :: unique_ptr, если хотите сохранить ту же семантику RAII, что и при использовании стекового подхода.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]