問題タブ [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.
c++ - C++STLコンテナ内のNULLポインタ
残念ながら、私は自分で開発したプログラムに完全に取り組んでいません。最近、unordered_setへのポインターの単純な挿入から呼び出されたunordered_setの演算子でVisualStudioの致命的なエラーに気づきました。ローカルを確認した後、セットには2つの要素しかなく、最後の要素がNULLであることに気付きました(したがって、それがクラッシュしたと思います)。ここで質問に移ります。unordered_set(または他のSTLコンテナ)がその要素の1つとしてNULLポインタを(理論的に)取得するにはどうすればよいですか。プログラムはマルチスレッドですが、私のレビューによると、コードのその部分には1つのスレッドからのみアクセスする必要があります。ありがとう。
興味のある人のためにスタックとソースコードの一部を呼び出します: http://privatepaste.com/c8e7f35a4e(PushToProcessedはオブジェクト自体から呼び出され、それ自体への参照を渡すため、NULLにすることはできません)
c# - Word2007:Selection.Find.Executeの実行時にアクセス違反の例外が処理されませんでした
このひどく迷惑なエラーに関する多くの投稿を読みました:「アクセス違反の例外は処理されませんでした」。ただし、Word2007とレイズコマンド「Selection.Find.Execute」に関する投稿は1つだけです。提案された解決策はWord2007を再インストールすることでした、そしてそれは少し些細なことです!
私は自分の環境を説明しようとしています。
WinFormsを使用してC#で記述された小さなアプリケーションがあり、InteropServices(word.dll)を介してWordを呼び出して、Wordで新しいドキュメントを作成します(Word2007インスタンスを起動します)。すべてのコードは.NETFramework3.5で実行されます。C#コード内でドキュメントを作成し、代わりに何かを検索します。
プログラムは、一部のマシンでのみ、引用されたエラーを発生させますが、他のマシンでは正しく実行されます。
これはスニペットコードです:
コードが太字の行を実行すると、「保護されたメモリの読み取りまたは書き込みを試みました。これは、他のメモリが破損していることを示していることがよくあります。」というメッセージとともに「アクセス違反」例外が発生します。このコードにコメントすると、ドキュメントが作成されました。これは、例外がWord全体に関連しているのではなく、Word内の特定の構成にのみ関連していることを意味している可能性があります。
例外は次のとおりです。
Word 2007を再インストールする代わりに、誰かが私にもっと合理的な方法を提案してもらえますか?
c# - 今までなかったアクセス違反
ここに示すように、Graphviz を P/Invoking しています。私がそのブログ エントリを書いたとき、コードは問題なく動作しました。HttpModule
今、そのコードを使用して Graphviz グラフをレンダリングするをまとめていますが、 AccessViolationException
at agmemread
.
私が言ったように、これは以前は完全に機能していました。しかし今、私は自分のコードを何にも動作させることができません。同じコードに基づく古い Graphviz アプリでさえ、もう機能しません。
これを引き起こす可能性のある変更は何ですか?Graphviz の新しいバージョンなどもダウンロードしていないので、DLL はすべて同じです。
編集:に変更しようとしstring
ましStringBuilder
たが、同じ結果が得られました。次に、MarshalAs
属性を追加しました。
これで は取得できなくなりましたAccessViolationException
が、Graphviz は文字列を正しく読み取ることができず、null ポインターを返します。
mysql - MySQL Zend Framework-SQLSTATE [42000]:構文エラーまたはアクセス違反:1064
この質問を投稿する前に、SOで罰金を科すことができるすべての回答を読みました。同様ですが、私の特定の問題に対処したものはありませんでした(または、そうしていることに気づきませんでした)。
Zend_Db_Table_Abstractを拡張するテーブルクラスがあります。モデルでは、join()メソッドを使用し、次のようなテーブルIDに基づいて単一の行を返そうとしています。
SQLオブジェクトをエコーすると、次のようになります。
奇妙なことに、この形式を使用すると、
私の出力は「WHERE(e.idEvent = 1)」です。値は目盛りで囲まれていませんが、どちらもMySQLで機能するようです。phpMyAdminでクエリを実行すると、次のようになります。
idCategoryタイプdisplayOrder説明localStartTimeevents_idEvent1
個人15k実行/ウォーク2010-02-1823 :59:5912チーム25k
チームカテゴリ2010-02-1823:59:591 1
それは私が見たいと思っていたものです。しかし、ブラウザでアプリを実行すると、次のような醜さが発生します。
SQLSTATE [42000]:構文エラーまたはアクセス違反:1064SQL構文にエラーがあります。
c
1行目の「SELECT 。* FROMAS INNER JOINcategories
AS ON c.events_id」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。c
events
e
考えられるすべてのリソースを確認しました。うまくいけば、SO超専門家の組み合わせの素晴らしさがこれを私の最後の目的地にするでしょう。:D
windows - レジストリ モジュールを使用すると、Perl が Access Violation でクラッシュする
お客様の Windows マシンで perl プログラムを起動するとクラッシュします。さらにテストを行ったところ、提供されている perl ディストリビューションでは、単純な「hello world」スクリプトが機能しますが、次の行が含まれていると機能しなくなることが示されています。
ゼロ ポインタにアクセスすると、Access Violation でクラッシュします。スタックはregistry.dllを指しています。
この問題をトラブルシューティングする方法はありますか? Google検索で何も見つかりませんでした。私の環境では再現できません。
c++ - C++ で char* が書き込み可能で、読み取り専用になる場合があるのはなぜですか
char*
最近、理解に大きな問題がありました。a を元に戻す再帰関数を作成したとchar*
しますが、それを初期化する方法によってはアクセス違反が発生し、C++ の入門書では理解するための正しいパスが見つからなかったので、あなたの助けを求めています。
ケース 1 文字を入れ替えようとしたときにアクセス違反が発生した最初のケース:
CASE 2次に、これを試してみました
CASE 3しかし、その後、私がカウトをしたとき、最後にランダムながらくたが出たので、
CASE 4それはうまくいったので、なぜこれがうまくいかないのかを自分に言い聞かせました
CASE 5で失敗しました。次のようなことができるとどこかで読んだことがあります
次に、それに何かを追加します。私の質問は、なぜ失敗するものと失敗しないものがあるのか、そしてそれを行う最善の方法は何ですか?
c++ - メソッド呼び出し時のアクセス違反例外
ここで奇妙な問題が発生しました。いくつかの仮想メソッドを持つクラスがあると仮定します。特定の状況下では、このクラスのインスタンスはこれらのメソッドの1つを呼び出す必要があります。ほとんどの場合、そのステージでは問題は発生しませんが、仮想メソッドへのポインタがNULLであるため(VSに示されているように)、仮想メソッドを呼び出せないことが判明し、メモリアクセス違反の例外が発生する場合があります。どうしてそれが起こるのでしょうか?
アプリケーションはかなり大きくて複雑なので、どのような低レベルの手順がこの状況につながるのかはよくわかりません。生のコードを投稿することは役に立ちません。
UPD:わかりました。問題の表現はかなり不明確なので、コードは次のようになります。
コンストラクタやデストラクタは関与しません。
c++ - ObReferenceObjectByHandle バグチェック、メモリ アクセス違反
キーボードを動的に無効にするプロジェクトに取り組んでいます。キーボードの物理デバイス オブジェクトを取得して IoInvalidateDeviceState を呼び出すドライバーを作成しましたが、物理デバイス オブジェクトの取得に問題があります。デバイス オブジェクトへのハンドルを使用して ObReferenceObjectByHandle を呼び出そうとするたびに、バグチェックが発生し、エラーはメモリ アクセス違反です。ここに私のソースコードがあります:
これはおそらくこれを達成するための最良の方法ではないことを認識しています (最悪の場合もあるかもしれません)が、私が知っている他の2つの方法は、キーボードのプラグを抜くか、再起動が必要なフィルタードライバーをインストールすることです. これを行う別の方法がある場合は、それをお知らせいただければ幸いです。助けてくれてありがとう!
c++ - スタックに作成される前にオブジェクトをアンワインドできますか?
ここ数日、奇妙なケースをデバッグしており、バグをある程度分離しましたが、まだ意味がありません。おそらく、ここにいる誰かが何が起こっているのかについての手がかりを教えてくれるでしょう。
問題は、コードの一部で発生するアクセス違反です。
基本的に、次のようなものがあります。
デバッガーでは実際に UnreachableClass を破棄しているように見えますが、DummyDestruct オブジェクトを挿入すると、奇妙なデストラクタが呼び出される前に破棄されません。したがって、LargeObject の破壊が失敗しているようには見えません。
これはすべて本番コードの途中にあり、小さな例に分離するのは非常に困難です。
私の質問は、これを引き起こしている原因と何が起こっているのかについて手がかりを持っている人はいますか? 非常にフル機能のデバッガー (Embarcadero RAD studio) を使用できますが、どうすればよいかわかりません。
続行する方法について誰かアドバイスをもらえますか?
アップデート:
DummyDestruct オブジェクトを throw 句の下に配置し、デストラクタにブレークポイントを配置しました。このオブジェクトのデストラクタが入力されます (そして、このコードには私たちだけが含まれています)。
c# - 「保護されたメモリの読み取りまたは書き込みを試みました。これは、他のメモリが破損していることを示していることがよくあります」DllImporting C#
DLL関数にデータをマーシャリングしてC#コードに戻そうとすると、この奇妙なエラーが発生します。nullを渡している場所や無効なメモリを読み取っている場所がわかりません。このエラーは、非常にあいまいです。手がかりはありますか?
以下のコード:
FeeCalculation関数は、DLLで次のようにエクスポートされます。
ジョンの提案で:
..。