-5

Visual Studio 2012 内の C++ にブレーク ポイントを配置しました。コードを実行し、ブレーク ポイントが検出された行を右クリックして、[Go to Dissembly] を選択します。新しいウィンドウが表示され、プログラムのアセンブラのように見えるものが表示されます。ただし、アセンブラを上下にスクロールし始めると、スクロールが追加のアセンブラ命令を作成しているかのように、スクロールバーがどんどん大きくなり始めます (明らかに、これは CPU で実際に起こることですが、確かにアセンブラウィンドウは私のプログラムのアセンブラを表示しています-マウスのスクロールではありません????)

スクロールバーのサイズが変更され続ける理由を誰かが確認できますか?

私はただ見たい:

アセンブラでの私のプログラムの始まり

->> スクロール ->>

アセンブラでのプログラムの終わり

アセンブラ ウィンドウで (アセンブラ ファイルを出力するのではなく)。VS2010でも同じことが起こります。

編集

プログラム:

#include <iostream>

using namespace std;

int main(){
    cout << "test" << endl;
    int b = 0;
    cin >> b;
}

コンソールウィンドウを開いて cin >> 待っているからでしょうか??

4

1 に答える 1

2

逆アセンブル ウィンドウはメモリ ビューアーです。それが示している:

  • メモリアドレス
  • コード バイト (コンテキスト メニューからチェックした場合)
  • 逆アセンブルされたコード

メモリ アドレス範囲は、プログラムに割り当てられたメモリに限定されないため、アドレス空間全体をスクロールできます。

Microsoft は、スクロール バーの動作について次のように説明しています

また、垂直スクロールバーが非標準的な方法で動作することにも気付くでしょう。最新のコンピューターのアドレス空間は非常に大きく、スクロールバーのつまみをつかんでランダムな場所にドラッグすると、簡単に迷子になります。このため、サムは「スプリングロード」され、常にスクロールバーの中央に留まります。ネイティブ コード アプリケーションでは、ページを上下に移動できますが、自由にスクロールすることはできません。

于 2013-07-20T19:06:36.653 に答える