[解決済み] .stackdumpファイルはどのように解釈すればよいですか?
質問事項
この質問は、おそらく次の質問の繰り返しです。 Cygwinの実行ファイルからstackdumpを使用する - とのことですが、初心者の私には答えどころか、質問の一部さえも理解できませんでした。
私はc++とプログラミングのかなりの初心者で、NetBeansで開発しています。私はいくつかのコードで作業していますが、コンパイルはうまくいきますが、実行中に失敗します。デバッガを使用すると、次のエラーが表示されます。
1 [main] all 6200 exception::handle: Exception: STATUS_ACCESS_VIOLATION
881 [main] all 6200 open_stackdumpfile: Dumping stack trace to all.exe.stackdump
all.exe.stackdumpというファイルはなんとか見つかり、notepad++で読むことができるのですが、意味がよくわかりません。他の質問で、このファイルをデコードするユーザーフレンドリーな方法があることを知りましたが、私の最良の推測は、次のとおりです。
bash$ gdb all.exe.stackdump
は効果がありませんでした。このファイルをデバッグに使うにはどうしたらいいでしょうか?
一応、all.exe.stackdumpの中身はこんな感じです。
Exception: STATUS_ACCESS_VIOLATION at eip=00434C41
eax=2003A2E4 ebx=0028A95C ecx=00000000 edx=0028A95C esi=0028A9B0 edi=00000000
ebp=0028A9C8 esp=0028A930 program=[redacted for privacy/security], pid 6200, thread main
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame Function Args
0028A9C8 00434C41 (00000000, 2003A4F0, 0028A9E8, 00000000)
0028A9E8 00436B14 (00000000, 2003A4F0, 0028AA28, 0028D000)
0028AAF8 004036A4 (0028AB80, 2003A2B0, 00000014, 00000003)
0028ABD8 00403FBC (00000001, 0028AC00, 200280E8, 2003A189)
0028ACF8 61007535 (00000000, 0028CD78, 61006B20, 00000000)
End of stack trace
解決方法は?
これは多くの人にとって共通の問題で、通常、gdbを使うように言われます。しかし、これは必ずしも合理的な答えではありません。なぜなら、新しいビルドがクラッシュしたものと同じシンボルアドレスを持っていることは保証されていないからです。 objdumpやaddr2lineなど、役に立つツールはいくつかあります。 objdump -D -S build.out > build.rasm.txt" と実行すると、関数のアドレスをテキストから検索することができます。 また、Addr2lineもこれらの関数を特定するには良い方法です。 もし、このようなクラッシュ問題を頻繁に扱うのであれば、スクリプトツールを書いて作業を助けることをお勧めします。
頑張ってください。
関連
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] スタックトレースを文字列に変換するにはどうすればよいですか?
-
[解決済み] Javaで現在のスタックトレースを取得するにはどうすればよいですか?
-
[解決済み] スタックトレースとは何ですか、またアプリケーションのエラーをデバッグするためにスタックトレースをどのように使用できますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較