2015-11-12 2 views
1

Я использую версию Visual Studio 2013 Community для написания проекта C#.Невозможно увеличить размер стека Visual Studio 2013 C#

Моя программа анализирует HTML с использованием HtmlAgilityPack и вызывает исключение переполнения стека. Я пытался изменить размер стека, но окно свойств решения я вижу только имеет опции, как показано на скриншоте:

Visual Studio 2013 configuration properties missing

Я читал некоторые другие статьи, в которых говорилось, что свойство решения C# проекта доступные параметры панели отличаются от доступных на C++. Где я могу настроить размер стека моей программы на C#?

+2

Он не отображается как опция в компиляторе C#, вы должны использовать событие postbuild (http://stackoverflow.com/a/4089197/17034). Вероятность того, что эта проблема решает вашу проблему, низкая, SOE почти всегда вызвана ошибкой в ​​вашей программе. –

+0

Уверены ли вы, что у вас нет бесконечной петли в вашей программе? (либо стандартный, но не окончательный, либо один, где рекурсии не останавливаются. Это причины по умолчанию переполнения стека вместо всего остального) – Thomas

ответ

1

Похоже, что причиной этого является переполнение стека. Проблема может быть решена путем увеличения размера стека. В визуальной студии вы можете сделать это, используя/STACK: reserve [, commit]. Read the MSDN article.

For more detailed explanation:

На платформах Windows, информация о размере стека содержится в исполняемых файлах. Его можно установить во время компиляции в Visual Studio C++. В качестве альтернативы, Microsoft предоставляет программу editbin.exe, которая может напрямую изменять исполняемые файлы. Вот более подробная информация:

для Windows (во время компиляции):

Select Project->Setting. 
Select Link page. 
Select Category" to "Output. 
Type your preferred stack size in Reserve: field under Stack 
allocations. eg, 32768 in decimal or 0x20000 in hexadecimal. 

для Windows (изменить исполняемый файл):

Есть две программы, включенные в Microsoft Visual Studio, DUMPBIN .exe и editbin.exe. Запустите исполняемый файл dumpbin/headers, и вы можете увидеть размер информации о резервном стеке в дополнительных значениях заголовка. Запустите editbin/STACK: размер, чтобы изменить размер стека по умолчанию.

Смежные вопросы