問題タブ [access-violation]
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.
exception - 「AccessViolationException」というエラーが非常に多いのはなぜですか?
私はコンピューターを使用する中で多くのエラーを見てきましたが、それらの多くは、読み取り不可能なメモリまたは 0x00000000/0xFFFFFFFF へのアクセス違反の例外呼び出しのようです。
これはどのようなプログラミングエラーが原因ですか? 何かがうまくいかないときにプログラムをクラッシュさせるのは意図的なことですか?
c# - 構造体の配列の構造体をシリアル化するときに AccessViolationException が発生しますか?
ファイルにシリアライズしたいシーケンシャル構造体がありますが、これは些細なことのようです。ただし、この構造体は、とりわけ、他のタイプの構造体の 2 つの配列で構成されています。主な構造体は次のように定義されています...
これらの構造体を意図したとおりに作成できます。ただし、次の方法 (オンラインで人気があるようです) でシリアル化しようとすると、AccessViolationException が発生します。
これは、構造体が配列の大きさを正確に定義していないため、事前にサイズを明示的に決定できないためだと思いますか? それを取得できないため、構造体に適切な量のスペースを割り当てておらず、構造体をポインターにキャストするときに短すぎてしまうようです。これについてはよくわかりません。なぜこれが発生する可能性があり、可能な代替手段は何ですか?
編集:エラーをスローしている行は
c++ - WM_PAINT でのアクセス違反がキャッチされない
この問題をテストするために、最小限の Windows アプリケーションを作成しました。ハンドラーでアクセス違反を強制すると、WM_PAINT
この例外はデバッガーに到達しません。デバッガーなしで起動すると、アクセス違反も表示されません。通常、Windows エラー報告ダイアログが表示されます。
もう少し深く掘り下げると、user32.dll の何かが着信例外をすべてキャッチしているようです。これは正常な動作ですか?これをどうにか制御できないか?すべての例外をキャッチすることはセキュリティ上のリスクではありませんか? 少なくともそれは地獄のように迷惑です。
これは、Vista 64 の 32 ビットおよび 64 ビット アプリケーションで発生します。XP では、例外は期待どおりに処理されるようです。他の Windows メッセージにも同じ問題があります。多分それらすべて?
WM_PAINT
ハンドラー:
c++ - hash_map を反復処理中に AV?
_transaction は、次のように宣言された、私のクラスのプライベート メンバー変数です。
クリーンアップ中に、このリストを反復処理して、まだ解放されていないオブジェクトを解放しようとしています。ただし、ここのfor行でAV を取得しています。
Re: ltstr とは何ですか?
スタックは、begin() メソッド内に表示されます。何か案は?
asp.net - .Net 2.0: System.AccessViolationException のトラブルシューティングに役立ちます。100% マネージド コード
私の質問の目的は今では完全に異なりますが、これは私の以前の質問から繰り返されています。
ときどき、週に 1 回、開発マシンでのみ、作成した Web アプリで System.AccessViolationException が発生します。
私のマシンにはうまく動作しないものがいくつかあるので (ブルー スクリーンがときどき表示されるなど)、以前は RAM の故障であると想定していました。memtestを24時間実行した後、そうではないと確信しています...
つまり、これは状況です: これは web アプリ、VB.Net 2.0、100% マネージ コードであり、COM、Interop、またはそのようなものを使用しません。Windows Server 2008 SP2 ボックスで実行されています。
私がやっている唯一の「奇妙な」ことは、アプリの起動時に独自の3つのスレッドを開始することです。これは、アプリドメイン内で「cronのような」ことを行います。また、このアプリが処理するリクエストのほとんどは非同期で処理されます。それらは、最大 30 秒間、応答なしで開いたままになります。(私はコメットロングポーリングを行っています)。
また、私はこのコードに約 1 年間取り組んできましたが、約 1 か月前にこれを開始したばかりです。最近変更したこの Web アプリ全体で変更した主要な、または重要なことは何も思いつきません。私は Javascript フロントエンドにほぼ完全に取り組んできました。
例外が発生すると、デバッグするかどうかを尋ねる典型的なポップアップが表示されます。すると、すべての ASP.Net スレッドと 3 つのスレッドが表示されます。
私の 3 つのスレッドは Sleep() を呼び出していますが、これは正常です。他のすべての ASP.Net スレッドには、コール スタックがまったくありません。
Visual Studio から例外が発生したことが通知されるスレッドでは、何も表示されません。
そのため、エラーがどこで発生するのか、あるいは毎回同じ場所で発生するのかどうかさえもわかりません。
手がかりとして見つけることができるのは、「アプリケーション」イベントログでこれだけです:
そしてその直後、これを伴う別のイベント:
MgdIndicateCompletion をグーグルで検索しましたが、本当に役立つものは見つかりませんでした...
今考えてみると、約 1 か月前に変更されたことの 1 つは、開発マシンで Server 2003 x86 から Server 2008 x64 (したがって IIS6 から IIS7) に移動したことです。それが原因なのかもしれませんが、どうすればいいのかわかりません...
つまり、これは問題を私のコードベースから完全に排除するということですよね?
更新:ここで提案されているように、App Pool 統合を「クラシック」に変更すると修正されるようです。私はまだまともな解決策、または少なくとも説明を探しています。
c++ - std::set::erase の違反読み取り場所へのアクセス
最近、アプリケーションで次のクラッシュが発生しました。
m_players
次のように宣言されています。
Visual Studio では、「0xC0000005: アクセス違反の書き込み場所 0x0000000000000024」と表示されます。
コンパイラ: Visual Studio 2008.
逆アセンブリ: 000000014007AA3B mov rcx,qword ptr [this] (クラッシュした)
したがって、その関数での this への最初のアクセスであるため、「this」が悪いために死にかけていると思います。しかし、ローカル/自動車を見たので、これは悪いポインターではないようです。
ヒントになれば幸いです。
wpf - WPFでAccessViolationExceptionを追跡する
多くのフレームコントロールを使用してカメラフィードを表示するWPFアプリケーションを作成しました。展開すると、かなりランダムにクラッシュし(2時間から16時間以上)、イベントログに次のように連続して表示されます。
System.AccessViolationException:保護されたメモリの読み取りまたは書き込みを試みました。これは多くの場合、他のメモリが破損していることを示しています。MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG&msg)at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)at System.Windows.Threading.Dispatcher.Run ()at System.Windows.Application.RunDispatcher(Object ignore)at System.Windows.Application.RunInternal(Window window)at System.Windows.Application.Run(Window window)at System.Windows.Application.Run()at Status_Station_client .MainClass.Main()
障害のあるアプリケーションステータスステーションclient.exe、バージョン1.0.0.0、スタンプ4ad0faa5、障害のあるモジュールmsvfw32.dll、バージョン5.1.2600.2180、スタンプ41109753、デバッグ?0、障害アドレス0x00002642。
これを追跡する方法について何かアイデアはありますか?WebページにはActiveXコントロールが含まれているため、最初の推測では、そこに問題があります。
デバッグモードではこれを追跡できませんでした。私が試しようと思ったもう1つのことは、ナビゲーション呼び出しからの例外を飲み込むことですが、これが賢明なことであるかどうかはわかりません。
編集:ここにいくつかのソースコードがあります、私はエラーがどこにあるか(つまり例外がスローされている場所)について困惑しています
MatrixView.cs:
FrameTimer.cs:
c - 解放されたメモリを参照すると、アクセス違反が発生する可能性がありますか?
解放されたメモリに (読み取り専用で) アクセスすると、アクセス違反が発生する可能性がありますか? また、発生する場合、どのような状況で発生しますか?
c++ - Delphi: 外部 DLL から関数を呼び出した後のアクセス違反 (C++)
C++ で記述され、DLL としてコンパイルされた関数があり、これを Delphi アプリケーションで使用したいと考えています。
スクレイパー.cpp:
Scraper.h:
これは、Delphi アプリケーションで関数を宣言する方法です。
関数は機能しますが、終了すると、Debugger Fault Notification: Project ... faulted with message: ''access violation at 0x0012f773: write of address 0xffffffc0' を受け取ります。プロセスが停止しました。Step または Run を使用して続行します。
__stdcall
Scraper.cpp と Scraper.h に(の後に)を追加するSCRAPER_API bool
と、Delphi アプリケーションがまったく起動しません。プロシージャ エントリ ポイント ScraperGetWinList がダイナミック リンク ライブラリ Scraper.dll に見つかりませんでした。
c# - 動的プロキシ生成を使用したSystem.AccessViolationException
PostSharpを使用してキャッシュ機能を注入していますが、この問題は使用している場合にのみ発生します。Springを使用すると、問題は解決したようです。
このように助けていただければ幸いです。問題を再現するのは非常に困難です。以下にスタックトレースを含めました。