【问题标题】:How to increase the stack size of vstest.executionengine.x86.exe如何增加 vstest.executionengine.x86.exe 的堆栈大小
【发布时间】:2018-01-17 06:43:18
【问题描述】:

我们的问题是,我们的 C++ 单元测试之一导致异常 0xC0000005(来自 dmp 文件 -> 线程试图读取或写入它没有适当访问权限的虚拟地址)正在执行方法签名(即使方法的主体也没有执行)。

这之后是堆栈溢出异常。我认为这是实际问题。

有没有办法增加vstest的堆栈?

编辑:这里是小型转储:minidump

【问题讨论】:

  • 你最好找到不应该发生的内存读取的原因。尝试缩小范围。
  • 堆栈溢出和访问冲突都表明您的代码中存在严重问题。您应该修复它们而不是尝试增加堆栈大小。
  • 根据我在其他系统上的经验,0xC00000xx 表明尝试使用未初始化的指针,而不是堆栈溢出。
  • 访问冲突首先发生并且是严重的问题。然后,单元测试运行器在尝试处理事故时也对 SO 倾倒,好吧,这种情况发生了。测试失败,写错误报告并附上minidump。
  • 好的,谢谢我添加了 minidup 文件

标签: c++ visual-studio exception stack-overflow


【解决方案1】:

你可以看看这个链接:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/d56d80e0-70f1-4ceb-b9ca-aed66e97a3d6/visual-studio-2012-unit-testing-native-c-crashes-due-to-stack-overflow?forum=vsunittest

上面写着:
您可以尝试添加以下REG_DWORD 键:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\EnterpriseTools\QualityTools\Agent\MaximumTestThreadStackSize,然后将其设置为更大的值,例如1000000 (decimal),以检查结果。

【讨论】:

  • 谢谢,不幸的是它没有解决问题。但同样奇怪的是“EnterpriseTools\QualityTools\Agent\MaximumTestThreadStackSize”甚至不存在,我必须创建密钥。
猜你喜欢
  • 1970-01-01
  • 2015-11-22
  • 2013-12-24
  • 2011-09-29
  • 2010-11-24
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多