问题标签 [bsod]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
31910 浏览

windows - 尝试读取转储时“无法加载符号”

我有一个应用程序有时会在 Win XP 机器上导致蓝屏死机。为了了解更多信息,我加载了生成的 *.dmp 文件(来自 C:\Windows\Minidump),但是在执行此操作时在大部分读数中都会收到此消息:

这是什么意思,我该如何“修复”它?

0 投票
3 回答
1901 浏览

windows - 我如何知道 Windows 是否刚刚从 BSOD 中恢复?

来自http://support.microsoft.com/kb/317277:如果 Windows XP 由于严重错误而重新启动,Windows 错误报告工具会提示您...

我的应用程序如何知道“Windows XP 由于严重错误而重新启动”?

0 投票
4 回答
3107 浏览

c# - 串口和蓝屏

我编写了一些 C# 代码,通过在端口上发出命令并侦听回复来检查设备是否存在于任何 SerialPort 上。当我只是设置端口速度,打开端口,获取串行流并开始处理时,它的工作时间是 100%。但是,我们的一些设备以不同的速度工作,我正在尝试以不同的速度探测设备以自动协商连接并检测设备的存在。

当我在一个线程中完成所有这些操作时,没有任何问题。但是十速下的3s超时是每个串口30s,可能有几个。因此希望同时探测所有端口。

有时这有效。有时 Vista 蓝屏。当我使用线程同时探测所有端口时,它几乎总是蓝屏。当我强迫一切都在一个线程中运行时,它永远不会发生。

USB 串行 Prolific PL-2303 适配器与 x64 驱动程序一起使用。


@Vinko - 感谢您提供有关阅读小型转储的提示。

据我所知,问题的症结在于,通过从不同的线程启动新的异步 I/O 操作,可以为重叠 I/O 赋予全新的含义,从而在驱动程序内部引发竞争条件。由于驱动程序在内核模式下执行,BLAM!

结语

除了开始之外,不要在回调处理程序之外使用 BeginXxx,并且在调用 EndXxx 之前不要调用 BeginXxx,因为你会在内核模式下运行的驱动程序代码中引发竞争条件。

后记

我发现这也适用于套接字流。

0 投票
11 回答
6704 浏览

windows-vista - 使用托管代码调用蓝屏死机

这里只是好奇:是否可以在 Windows XP/Vista 下使用 .net 托管代码调用 Windows 蓝屏死机?如果可能的话,示例代码是什么?

只是为了记录,这不是出于任何恶意目的,我只是想知道要真正杀死指定的操作系统需要什么样的代码。

0 投票
8 回答
7201 浏览

c++ - 模拟蓝屏

我正在尝试制作一个定期记录一大堆事情的程序。具体原因是,如果它蓝屏,开发人员可以返回并检查大量环境,看看当时发生了什么。

我的问题,他们是导致蓝屏的方法吗?也许通过 windowsAPI 调用(也许是零内存?)。

Anywhoo,如果您能想出一种方法来导致蓝屏待命,我将不胜感激。

我正在测试它的计算机旨在接受这样的东西哈哈。

顺便说一句,我使用的语言是 C\C++。谢谢

0 投票
3 回答
177 浏览

bsod - 假设我正在编写我的代码,然后我的电脑死了,如果我不希望我以后的源代码被污染,那么有必要进行一次完整的扫描吗?

假设我正在编写一个 Ruby on Rails 程序,并且在编辑文件时,机器蓝屏。在这种情况下,如果我不希望以后的文件损坏,有必要重新扫描整个硬盘驱动器吗?

假设操作系统在我的计算机崩溃时正在删除一个 tmp 文件,并且仍然有一些指向硬盘驱动器上某个扇区的指针。如果我新创建的文件恰好在那些扇区中,并且下次操作系统再次清理文件时,它可能会认为上次没有清理“剩余”扇区并再次清理它,并损坏我们的源代码. (尤其是 Ruby on Rails,源代码可以由 rails 而不是我们生成,如果文件受到影响,我们可能不知道为什么我们的 rails 服务器无法工作)。我们可以依赖 SVN,但是如果文件在我们签入之前受到影响怎么办?

我认为官方的回答将是:“在崩溃或断电后始终扫描磁盘,以获取数据甚至空间并指示尝试修复任何坏扇区”,但问题是,如今硬盘驱动器如此之大,扫描所有内容可能需要 2 小时。尤其是在工作中,如果是中午,我们不能等待 2 个小时。

有人知道现代操作系统,如 XP、Vista、Mac OS 和 Linux(有时电源线松了,它没有正确关闭,只是在 0% 电池电量下关闭),这些现代操作系统是我们的源代码安全吗?他们是否知道如何构造写入扇区,以便最多会浪费扇区而不是重叠扇区?

0 投票
2 回答
2171 浏览

delphi - 重叠的串口和蓝屏死机

我创建了一个异步处理串行端口的类。我用它与调制解调器通信。我不知道为什么,但有时,当我关闭我的应用程序时,我会出现蓝屏并且我的计算机会重新启动。我一步一步地记录了我的代码,但是当蓝屏出现并且我的计算机重新启动时,我记录数据的文件只包含空格。因此,我不知道 BSOD 的原因可能是什么。

我仔细查看了我的代码,发现了问题的几个可能原因(我正在寻找所有可能导致访问未分配内存并导致 AV 异常的原因)。

当我重新考虑异步操作的想法时,我想到了一些事情。请验证这些是否正确:

1) WaitCommEvent() 获取一个指向重叠结构的指针。因此,如果我在函数内部调用 WaitCommEvent() 然后离开函数,重叠的结构不能是局部变量,对吧?事件掩码变量和事件句柄也是,对吧?

2) ReadFile() 和 WriteFile() 也采用变量的引用或指针。因此,在重叠的读取或写入操作完成之前,所有这些变量都必须是可访问的,对吧?

3) 我只调用一次 WaitCommEvent() 并在一个循环中检查它的结果,同时做其他事情。因为我不知道如何终止异步操作(有可能吗?),所以当我销毁我的保留串口句柄的类时,我首先关闭句柄,然后在使用的重叠结构中等待事件调用 WaitCommEvent() 函数时。我这样做是为了确保异步等待通信事件的线程不会访问我的类中被破坏的任何字段。这是个好主意还是愚蠢?

在我注意到所有这些之前,第一点和第二点中提到的大多数变量都是调用上述三个方法的函数的局部变量。这可能是 BSOD 的原因还是我应该在我的代码中寻找其他一些错误?

当我更正代码时,BSOD 停止发生,但这可能是巧合。你怎么想?

任何想法将不胜感激。提前致谢。


我阅读了 CancelIo() 函数文档,它指出此方法取消调用线程发出的所有 I/O 操作。如果我知道 WaitCommEvent() 是由与调用 CancelIo() 的线程不同的线程发出的,那么在调用 CancelIo() 后等待 FWaitCommEvent 是否可以?

我检查了在这种情况下会发生什么,调用这段代码的线程没有死锁,即使它没有发出 WaitCommEvent()。我在 Windows 7 上进行了测试(如果重要的话)。我可以保留代码原样还是危险?也许我误解了文档,这就是我提出问题的原因。我很抱歉问了这么多问题,但我真的需要确定这一点。

谢谢。

0 投票
1 回答
550 浏览

delphi - 运行 Delphi 2009 应用程序时 Vista 64 位蓝屏

我有一个已转换为 Delphi 2009 的应用程序我有“字符串格式检查”和标准内存管理器。我在http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx下载了 MS 调试工具并获得了一些调试文件,但我不知道该怎么做。我想要一些关于从这里去哪里的指示。下面是调试文件的顶部(底部已加载所有驱动程序);

0 投票
4 回答
589 浏览

java - 在 Leopard 上进行 Java 开发期间出现蓝屏死机 - 任何想法如何解决这个问题?

我在 Intellij IDEA 7 和 9M1 上使用 Java 5 和 6 进行开发。有时(在运行/编译期间)我的 Mac (10.5.7) 会出现蓝屏死机。

有没有其他人遇到过这个问题并设法解决了这个问题?如果是这样,怎么做?除了在 VM 中运行 IDE 之外还有什么建议吗?

0 投票
2 回答
3212 浏览

bsod - 使用 HalDisplayString 自定义蓝屏死机

不久前,我在网上某处阅读,您可以制作自定义 BSOD。我不记得在哪里,但我知道调用 HalDisplayString 会切换到蓝屏并打印一条消息。我尝试从一个简单的驱动程序调用 HalDisplayString 但没有任何反应。我想知道是否有人能指出我正确的方向。这是驱动程序的代码。

提前致谢!