如何在编译器中找到导致异常的文件?

时间:2018-04-05 23:04:04

标签: c# compiler-errors roslyn

所以,我有一个奇怪的问题。所以我有我公司的这个企业代码...大约6000个文件和200k行代码。 有些东西导致编译器崩溃: 错误MSB6006" csc.exe"退出,代码为-2146232797。

我已经看到有些人报告了同样的错误。 https://github.com/dotnet/roslyn/issues?utf8=%E2%9C%93&q=is%3Aissue+%22-2146232797%22

我很难找到导致问题的文件。 我在想:

  1. 导致此问题的文件是什么?
  2. 有没有办法将调试器附加到此csc.exe并获取内存?
  3. 有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

解决神秘错误代码的一些常规技巧:

  1. 使用Windows计算器将错误编号从十进制转换为十六进制。在这种情况下,它是0x80131623。
  2. 谷歌那个号码。在这种情况下,听起来它可能是一个FatalExecutionEngineError,它可能表示内部堆栈溢出。
  3. 查看Windows事件日志。您很有可能会在那里找到隐藏的完整堆栈跟踪,这可能会指向您错误。
  4. 调高错误报告的级别。在visual studio中:工具/选项/项目和解决方案/构建和运行/ MSBuild verbosity
  5. 200k线是一个很大的项目,但不是很大。 CSC应该能够处理这种大小。但这可能与其内部结构如何有关。

    希望有所帮助。