1

C++とLuaでプログラムを作っています。デバッガの外でリリース モードでプログラムを実行すると、プログラムが期待どおりに動作しません (クラッシュせず、思ったとおりに動作しません)。デバッガーから起動すると、問題なく動作します。

プログラムがデバッガー内で実行される方法とデバッガー外で実行される方法に違いがあることを理解しています (ヒープの違い?初期化されていない変数のいくつか?)。デバッグ中にこの問題が発生するように、できるだけ変更を加えずにプログラムのリリース バージョンを実行するようにデバッガを構成することはできますか?

4

2 に答える 2

2

試してみることがいくつかあります。

  • デバッガーの外部で実行しますが、後でプロセスに接続します。プロセスがデバッガーから開始されると、環境がわずかに異なるため、それが異なる動作の原因である場合は、これによりデバッグが可能になります
  • 最適化をオフにしてリリースビルドを作成し、デバッガーの内部と外部で同じ動作が実行されるかどうかを確認します。それでも問題を再現できる場合は、(上記のAttach Processメソッドを使用して)問題をデバッグするのがはるかに簡単になります。
于 2012-06-21T20:56:55.223 に答える
0

Not sure about making the debugger act like a release build but you can simulate them somewhat.

Depends on what exactly the differences in behaviour are.

Are all the variables initialised? The debugger does that. You can also use asm { int 3 } to break in release mode.

于 2012-06-21T20:40:27.557 に答える