【发布时间】:2010-10-18 19:24:36
【问题描述】:
我正在运行一个(大部分)单线程程序(有一个主线程可以完成所有工作,其他线程只读取内容)。稍作更改(我更改了表单的文本和另一个表单的 tab 顺序)后,我可以让应用程序在 VS2008 中正常运行,但我无法再让它在调试器之外工作。有谁知道这是什么原因造成的?
说明: 发布模式,使用调试器 (F5) 启动即可。调试模式,使用调试器 (F5) 启动。调试可执行文件,或发布在 VS 外部启动或使用 Ctrl+F5 失败的可执行文件。
它使用微软的 Virtual Earth 3D,它似乎在“希望之环”(加载环)即将完成时崩溃。
事件日志说:“.NET 运行时版本 2.0.50727.3053 - 致命的执行引擎错误 (000006427F44AA6E) (80131506)”
罪魁祸首:这一行:
this.loader = PlugInLoader.CreateLoader(this.globeControl.Host);
导致它失败。但是,正在工作的表单使用完全相同的行没有问题。这条线是程序运行所必需的。我不知道它在做什么。
Another Lead 错误似乎在 .NET 框架内。应用程序在另一台机器上工作,正在尝试重新安装。 更新: 并没有什么不同,虽然当我修复 VS 时,它一直告诉我 Visual Studio 崩溃了,即使我没有运行它。
错误 当我在几分钟后启动程序时,我得到: 应用程序产生了无法处理的异常。
进程 ID=0x9CC (2508),线程 ID =0xF0C(3852)。
单击“确定”终止应用程序。
点击 CANCEL 调试应用程序。
拆解诡异:
0000000077EF2A90 int 3
0000000077EF2A91 int 3
0000000077EF2A92 int 3
0000000077EF2A93 int 3
0000000077EF2A94 int 3
0000000077EF2A95 int 3
0000000077EF2A96 xchg ax,ax
0000000077EF2A9A xchg ax,ax
0000000077EF2A9E xchg ax,ax
0000000077EF2AA0 int 3 <-- Crashes here
0000000077EF2AA1 ret
它多次重复相同的代码块(减去与自身交换的斧头)
除了我的电脑,它在我测试过的每台机器上都可以工作,除了我机器上的一个 VM,它不会安装 .NET 框架,因为安装程序会从 0 个字节中下载 0 个字节用于框架)...可爱的窗户。
【问题讨论】:
-
没有,它只是崩溃了。 Windows 说应用程序需要关闭。
-
你能更具体地说明你所说的“在调试器之外”是什么意思吗?您是指 Visual Studio 中的 F5 与 Ctrl+F5 吗?如果你去bin/debug目录双击exe会失败?
-
在调试器之外意味着它没有在调试时运行,使用 Ctrl+F5 启动或直接从可执行文件启动都会导致应用程序崩溃。
-
事件日志有:.NET 运行时版本 2.0.50727.3053 - 致命的执行引擎错误 (000006427F44AA6E) (80131506)
-
应用程序是否使用任何网络?就像您允许 VS 通过防火墙但不允许直接通过应用程序一样。
标签: c# .net winforms debugging