0

私はVisual Studio 2010で.exeを使用して作業しています(元のコードがないため、アセンブラーしか表示されません)。生成元のコードは次のようなものです (正確ではありませんが、不明な小さな変更があります)。

int main() {
    int points = 1000;
    int games = 0;

    srand ((unsigned int) time(NULL));  // random seed

    while(true) {
        games++;
        playGame(&points, games);
    keepPlaying();
    }
    return 0;
}

さらに、呼び出された 2 つのメソッド (非常に簡単なもの)。

ここで、.exe をデバッグしようとすると、それを開いて F11 を押すと、すべてうまくいきます。コードの読み取りを開始し、いくつかのブレークポイントを配置し、メインを見つけます...

しかし、停止して F5 キーを押して最初のブレークポイントに移動しようとすると、プログラムがメモリ内の別の場所にロードされていることがわかりました。したがって、(未使用のメモリを指している) ブレークポイントが見つかりません。

また、ブレークポイントが見つかるまで F10/F11 を使用して行ごとに移動することもあります。それらを見つけた(そして有効になっている)ことがありますが、それらに到達するまで実行を試み(F5)、それらを通過します。

たとえば、Visual Studio にアセンブラーを常に同じメモリの場所に配置させることができるかどうかは誰にもわかりますか? または、ブレークポイントを保持できるようにして、毎回行ごとに実行する必要がないようにします。

4

1 に答える 1

1

まあ、私はちょっと回り道を考え出しました... 他の誰かが同じ問題を抱えている場合は、ブレークポイントを作成してラベルを付けることで部分的に回避できます。そのうちの1つが最初の行にあります。

たとえば、メイン メソッドの呼び出し時、またはその開始時に別のメソッドを配置できます。次に、デバッグを停止して再起動する代わりに、最初のブレークポイントに移動し、命令を右クリックして、次の命令をスタブリッシュします。

ただし、これによりデータに問題が発生する可能性があります (確実に発生する可能性があります) ので、注意してください。それは私にとってはうまくいきましたが、おそらく非常に単純なタスクに使用したためです.

于 2013-05-05T20:01:16.087 に答える