Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法增加Visual Studio 2013 C的堆栈大小#_C#_Visual Studio 2013_Stack Overflow_Stack Size - Fatal编程技术网

C# 无法增加Visual Studio 2013 C的堆栈大小#

C# 无法增加Visual Studio 2013 C的堆栈大小#,c#,visual-studio-2013,stack-overflow,stack-size,C#,Visual Studio 2013,Stack Overflow,Stack Size,我正在使用Visual Studio 2013社区版编写一个C#项目 我的程序使用HtmlAgilityPack解析HTML,并引发堆栈溢出异常。我一直在尝试更改堆栈大小,但我看到的解决方案属性窗口只有屏幕截图所示的选项: 我读了一些其他文章,这些文章说C.C.Project的解决方案属性面板的可用选项与C++不同。我在哪里可以配置我的C#程序的堆栈大小?似乎这背后的原因是堆栈溢出。这个问题可以通过增加堆栈大小来解决。 在VisualStudio中,您可以通过使用/STACK:reserve[

我正在使用Visual Studio 2013社区版编写一个C#项目

我的程序使用HtmlAgilityPack解析HTML,并引发堆栈溢出异常。我一直在尝试更改堆栈大小,但我看到的解决方案属性窗口只有屏幕截图所示的选项:


<>我读了一些其他文章,这些文章说C.C.Project的解决方案属性面板的可用选项与C++不同。我在哪里可以配置我的C#程序的堆栈大小?

似乎这背后的原因是堆栈溢出。这个问题可以通过增加堆栈大小来解决。 在VisualStudio中,您可以通过使用/STACK:reserve[,commit]

在Windows平台下,堆栈大小信息包含在可执行文件中。它可以在VisualStudioC++中编译期间设置。 或者,Microsoft提供一个程序editbin.exe,可以直接更改可执行文件。详情如下:

窗口(编译期间):

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(修改可执行文件):

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.

Microsoft Visual Studio中包括两个程序:dumpbin.exe和editbin.exe。运行dumpbin/headers可执行文件,您可以在可选的头值中看到堆栈保留信息的大小。运行editbin/STACK:size以更改默认堆栈大小。

它在C#编译器中没有作为选项公开,您必须使用。这样解决问题的几率很低,SOE几乎总是由程序中的错误引起的。你确定程序中没有无休止的循环吗?(无论是从一个未结束时开始的标准堆栈还是递归未停止的堆栈。这些都是堆栈溢出的默认原因,而不是其他原因)