問題タブ [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 - ダンプを読み込もうとしたときに「シンボルを読み込めません」

WinXPマシンでBSODを引き起こすことがあるアプリケーションがあります。詳細を調べようとして、結果の* .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# - SerialPort と BSOD

ポートでコマンドを発行して応答をリッスンすることにより、SerialPort にデバイスが存在するかどうかを確認する C# コードをいくつか作成しました。ポート速度を設定し、ポートを開き、シリアル ストリームを取得して処理を開始すると、常に 100% 動作します。ただし、一部のデバイスは異なる速度で動作するため、接続を自動ネゴシエートし、デバイスの存在を検出するために、さまざまな速度でデバイスをプローブしようとしています。

これらすべてを単一のスレッドで実行しても問題はありません。ただし、10 の速度での 3​​ 秒のタイムアウトは、シリアル ポートごとに 30 秒であり、いくつかある場合があります。したがって、すべてのポートを同時にプローブする必要があります。

時々これはうまくいきます。時々 Vista のブルースクリーン。スレッドを使用してすべてのポートを同時にプローブすると、ほぼ常にブルースクリーンになります。すべてを 1 つのスレッドで強制的に実行すると、決して起こりません。

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 呼び出しを使用します (ZeroMemory かな?)。

とにかく、通話中にブルースクリーンを発生させる方法を考えていただければ幸いです。

私がこれをテストしているコンピューターは、このようなものを取るように設計されています (笑)。

ちなみに私が使っている言語はC\C++です。ありがとうございました

0 投票する
3 に答える
177 参照

bsod - コードを書いているときにPCが故障したとしましょう。後のソースコードを汚染したくない場合、完全なスキャンを実行する必要はありますか?

たとえば、Ruby on Railsプログラムを作成していて、ファイルの編集中にマシンがブルースクリーンになっているとします。この場合、将来のファイルを損傷させたくない場合は、ハードドライブ全体を再スキャンする必要がありますか?

コンピューターがクラッシュしたときにOSがtmpファイルを削除していて、ハードドライブ上のセクターへのポインターがまだ残っている場合を考えてみましょう。新しく作成したファイルがたまたまそれらのセクターにあり、次にOSがファイルを再度クリーンアップした場合、「残った」セクターが前回クリーンアップされなかったと考えて、ソースコードに損傷を与える可能性があります。 。(特にRuby on Railsの場合、ソースコードは私たちではなくRailsによって生成される可能性があり、ファイルが影響を受ける場合、Railsサーバーが機能しない理由がわからない場合があります)。SVNに頼ることはできますが、チェックインする前にファイルが影響を受けた場合はどうなりますか?

公式の答えは「クラッシュや停電後は常にディスクをスキャンして、データやスペースを探し、不良セクタを修正する試みを示してください」と思いますが、最近のハードドライブは非常に大きいので、すべてをスキャンするのに2時間かかる場合があります。そして、特に職場では、真昼の場合は2時間待つことはできません。

XP、Vista、Mac OS、Linuxなどの最新のOS(電源コードが緩んでいて、正しくシャットダウンせず、0%のバッテリーでシャットダウンした場合)がこれらの最新のOSであるかどうかを誰かが知っていますか?私たちのソースコードは安全ですか?彼らは、セクターに書き込むように構造化して、重複するセクターではなく、せいぜいセクターを浪費するようにする方法を知っていますか?

0 投票する
2 に答える
2171 参照

delphi - 重複したシリアルポートとブルースクリーンオブデス

シリアルポートを非同期的に処理するクラスを作成しました。モデムとの通信に使用します。理由はわかりませんが、アプリケーションを閉じるとブルースクリーンが表示され、コンピューターが再起動することがあります。コードを段階的に記録しましたが、BSODが表示され、コンピューターを再起動すると、データを記録していたファイルに空白しか含まれていませんでした。したがって、BSODの理由が何であるかはわかりません。

コードを注意深く調べたところ、問題の考えられる理由がいくつか見つかりました(割り当てられていないメモリにアクセスし、AV例外を引き起こす可能性のあるすべての理由を探していました)。

非同期操作のアイデアを再考したとき、いくつかのことが頭に浮かびました。これらが正しいかどうかを確認してください。

1)WaitCommEvent()は、オーバーラップした構造体へのポインターを受け取ります。したがって、関数内でWaitCommEvent()を呼び出してから関数を終了すると、オーバーラップした構造体をローカル変数にすることはできません。イベントマスク変数とイベントハンドルもそうですね。

2)ReadFile()およびWriteFile()も、変数への参照またはポインターを取ります。したがって、これらの変数はすべて、重複する読み取りまたは書き込み操作が終了するまでアクセス可能である必要があります。

3)WaitCommEvent()を1回だけ呼び出し、その結果をループでチェックし、その間に他のことを行います。非同期操作を終了する方法がわからないため(可能ですか?)、シリアルポートへのハンドルを保持しているクラスを破棄するときは、最初にハンドルを閉じてから、使用されたオーバーラップ構造でイベントを待ちますWaitCommEvent()関数を呼び出すとき。これは、commイベントを非同期的に待機するスレッドが、破棄されたクラスのフィールドにアクセスしないようにするためです。それは良い考えですか、それとも愚かですか?

これらすべてに気付く前に、ポイント1と2で言及された変数のほとんどは、上記の3つのメソッドを呼び出した関数のローカル変数でした。それがBSODの理由でしょうか、それともコード内の他の間違いを探す必要がありますか?

コードを修正すると、BSODが発生しなくなりましたが、偶然かもしれません。あなたはどのように思いますか?

任意のアイデアをいただければ幸いです。前もって感謝します。


CancelIo()関数のドキュメントを読みましたが、このメソッドは、呼び出し元のスレッドによって発行されたすべてのI/O操作をキャンセルすると記載されています。WaitCommEvent()がCancelIo()を呼び出すスレッドとは異なるスレッドによって発行されたことがわかっている場合、CancelIo()を呼び出した後にFWaitCommEventを待つことは問題ありませんか?

このような場合に何が起こるかを確認したところ、このコードを呼び出すスレッドは、WaitCommEvent()を発行しなくてもデッドロックしませんでした。私はWindows7でテストしました(重要な場合)。コードをそのままにしておいてもいいですか、それとも危険ですか?たぶん私はドキュメントを誤解しました、そしてこれが私の質問の理由です。たくさんの質問をされたことをお詫びしますが、それについては本当に確信する必要があります。

ありがとう。

0 投票する
1 に答える
550 参照

delphi - Delphi2009アプリケーションの実行時のVista64ビットBSOD

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 を呼び出してみましたが、何も起こりません。誰かが私を正しい方向に向けることができるかどうか疑問に思っていました. これがドライバーへのコードです。

前もって感謝します!