首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的.net程序导致了BSOD

我的.net程序导致了BSOD
EN

Stack Overflow用户
提问于 2010-07-13 03:02:07
回答 3查看 2.7K关注 0票数 7

当我的windows winform应用程序运行时,我得到一个蓝屏。似乎只有一个用户得到了这个。我不确定在这个时候在哪里寻找问题。然而,我正在使用我在CodeProject上找到的一些代码来捕获鼠标事件和键盘事件,http://www.codeproject.com/KB/cs/globalhook.aspx,这可能是它吗?

我正在寻找关于如何捕获这个错误的建议。它只发生在40个用户中的一台计算机上,所以我有点困惑--特别是因为这个用户是主要的利益相关者。

更新:我们又多了一个事件--一个共同点就是对接端口。用户正在使用相同的坞站端口。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-13 03:10:17

您的代码不可能导致BSOD。如果你没有在内核模式下运行,那么BSOD不是你的错(如果你不介意这个双关语的话)。

OTOH,我见过托管代码在一段内核模式代码中触发错误。然后,这个bug导致了BSOD。在我的例子中,内核模式代码是一个VPN软件的一部分,它想要了解您正在运行什么代码,以便它可以决定是否允许您访问VPN。代码使用内核模式钩子来完成此操作,并且它们有一个由加载大量程序集触发的错误。

显然,他们从未在Visual Studio运行时测试过他们的代码。它在运行时加载插件等,这触发了它们的bug。一段简单地将大量程序集加载到AppDomain中(然后卸载AppDomain并重新开始)的C#代码也触发了它们的错误,因此这不是Visual Studio的问题。

这个故事的寓意是,有人需要查看崩溃转储并找出导致崩溃的是哪一块内核模式软件,然后也许你就可以找出系统中发生了什么,从而触发内核模式软件崩溃。

票数 12
EN

Stack Overflow用户

发布于 2010-07-13 03:18:47

问题不会直接出在你的应用程序上,而是他的系统出现了一些问题,所以正如roufamatic所说的,check是事件日志。然而,有两个常见的“硬件”错误往往会导致这类问题,你可以检查这两个错误,看看它们是否会给你提供线索。

  1. 内存不足。如果出现了内存错误,看到一个特定的程序“导致”坏内存被访问,从而导致BSOD,这种情况并不少见。例如,如果他通常在运行相当轻量级的应用程序,那么内存错误就有可能出现在不正常使用的位置。当你加载你的应用程序时--特别是如果它占用了很大的内存并且调用了很多依赖项,你很可能会间接地触发崩溃。因此,在机器RAM.
  2. 打印机驱动程序上运行一次全面检查。这曾经是一个比现在更大的问题,但如果你在XP上运行,那么它仍然偶尔会弹出。众所周知,打印机驱动程序编写得很糟糕,而且经常出现错误。这并不是没有听说过的应用程序调用打印机驱动程序,这反过来崩溃的系统。要检查这一点,只需删除打印机驱动程序,然后重新加载它们。

编辑:正如评论中指出的,任何糟糕的硬件或糟糕的驱动程序都可能导致这种行为。我只是简单地强调内存和打印机驱动程序,因为经验表明,这两种驱动程序是最常见的原因,因此值得首先考虑。

票数 3
EN

Stack Overflow用户

发布于 2010-07-13 05:16:49

我以前就必须解决这个问题。我正在编写用户模式的C#代码,以便与USB总线上的HID设备通信。这个问题发生在我的笔记本电脑上,而不是其他人的机器上。事实证明,它造成了问题,因为我运行的是64位操作系统,因此有64位驱动程序。所有其他用户都有32位驱动程序,这没有问题。这是一组适度控制的用户。我认识每个用户,他们都是有能力的用户,他们可以向我提供有关他们的硬件、操作系统和驱动程序的信息。我们也都在使用相同的设备。

我不记得我是如何确定这个问题的。但我通过将应用程序项目设置为仅针对32位Windows来非常简单地解决了它。如果没有64位应用程序,故障驱动程序将永远不会被使用。

让用户更新他们的驱动程序、硬件或更改代码,以避免完全使用驱动程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3231371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档