2011-12-09 8 views
5

VC++でデバッグモード中に関数を呼び出すことはできますか?デバッグ中にその時点で実行が停止したときにブレークポイントを設定する関数があるとしたら、次のコード行に進む前に他の関数を呼び出してその結果を見ることができますか?VC++(イミディエイトウィンドウ)でデバッグモード中に関数を呼び出す

+0

私はそうは思わない。デバッガは、実行のシーケンシャルプロセスのある時点で停止するのに役立ちますが、それを元に戻すことはありません。 – Mahesh

答えて

0

Visual Studioには、特定のステートメント(right click + set next statementまたはctrl+shift+F10)にジャンプするオプションがありますが、その際には注意してください。関数呼び出しでは、レジストリを有効にする必要があります。これは、クラス間または範囲外にジャンプした場合には当てはまりません。

+0

ありがとうございます、あなたはそれがいつも期待どおりに働いているとは限りません。 – Jawad

+0

@ Jawadこれはもちろん設計によるものです。あなたが望むものをランタイムが知る方法はありません... –

3

私はあなたができると信じています。私はそのイミディエイトウィンドウと呼ばれると思います。 VS2010 Ultimateを使用しているので、あなたのバージョンに存在するかどうかわかりません。

[ctrl] + [alt] + i 

しかし、これは、関数が値を返すときにのみ出力します。また、場合によっては動作しないことがあります。

のは、あなたが持っているとしましょう:

int number = 10; //global 

int main() 
{ 
    std::cout<<std:endl; //breakpoint 1 here 
    setNumber(4); 
    std::cout<<std:endl; //breakpoint 2 here 
} 

int getNumberSquared() 
{ 
    return number * number; 
} 
void setNumber(int n) 
{ 
    number = n; 
} 

あなたはブレークポイント1が発生した際に、プレスショートカットやタイプ:

getNumberSquared() 

出力が同じことを行う、ブレークポイント2に遭遇した後100 になります出力は16

+1

ありがとうございます。私はそれを行い、このエラーが発生しました:CXX0052:エラー:メンバー関数が存在しません。私はソースコードのないコンパイル済みのライブラリを使用しています。したがって、私はそれらの関数に入ることができません。しかし、技術者。サポートでは、ライブラリの関数を呼び出して、デバッグモードでその出力を見ることができるはずです(配列のサイズを見つけるなど)。 – Jawad

+0

ああ、私が言ったように、インタラクティブモードは常に動作しません。しかし、ほとんどそれがします。私はそれがライブラリとの互換性について何かを伝えることはできません。 – devjeetroy

+0

ありがとうございます。私は他の機能を試してみます。 – Jawad

関連する問題