[解決済み] リリースビルドでプログラムがクラッシュする -- デバッグの方法は?
2022-12-11 09:33:18
質問
私のプログラム (実際には私のプログラムのためのテストスイートですが、それでもプログラム) はクラッシュしますが、リリース モードで構築されたときのみ、そしてコマンドラインから起動されたときのみです。 原始的なデバッグ (つまり、いたるところにある厄介な printf() メッセージ) を通じて、私はコードがクラッシュしているテスト メソッドを決定しました。
Visual Studio の内部でこのプログラムを実行しようとすると、クラッシュしません。 WinDbg.exe から起動した場合も同様です。 クラッシュは、コマンド ラインから起動したときのみ発生します。 これは Windows Vista で発生しており、残念ながら今は XP マシンにアクセスできないので、テストできません。
Windows でスタック トレースを出力できれば、本当に素晴らしいことです。
何か
を表示させることができれば本当に良いのですが、単にプログラムがきれいに終了したかのように終了させるだけではありません。 どなたか、ここでもっと意味のある情報を取得し、できればこのバグを修正する方法についてアドバイスがありますか?編集: この問題は、確かに境界外配列が原因でした。 この投稿で詳しく説明しています。 . この問題を発見してくれた皆さん、ありがとうございました。
どのように解決するのですか?
C または C++ プログラムをデバッガーで正常に実行し、外部で実行すると失敗するという、私が見聞きした 100% のケースで、原因は関数のローカル配列の最後を越えて書き込んだことでした。(デバッガーはスタックに多くのものを置くので、重要なものを上書きする可能性は低くなります)。
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] スタックトレースとは何ですか、またアプリケーションのエラーをデバッグするためにスタックトレースをどのように使用できますか?
-
[解決済み] プログラムがクラッシュしたときにスタックトレースを自動的に生成する方法
-
[解決済み] CMakeにおけるデバッグとリリースの比較
-
[解決済み] C#のif/thenディレクティブによるデバッグとリリースの比較
-
[解決済み】デバッグビルドとリリースビルドの性能差について
-
[解決済み】DEBUG/RELEASEビルドでコードが実行されているかどうかを判断する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】C++で例外発生時にスタックトレースを表示する方法
-
[解決済み] ヒープ破壊エラーのデバッグ方法を教えてください。
-
[解決済み】g++の最適化レベル-O3は危険か?