次の方法で共有


コンテキスト演算子 (C/C++ 言語式)

更新 : 2007 年 11 月

このトピックの内容は、次の製品に該当します。

Edition

Visual Basic

C#

C++

Web Developer

Express

トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

Standard

トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

Pro/Team

トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

表の凡例 :

トピック該当

対象

トピック該当なし

該当なし

トピックは該当しますが、コマンドは既定では非表示です

既定で非表示のコマンド

コンテキスト演算子は、ネイティブなデバッガによって提供される追加の演算子です。ネイティブ コードをデバッグするときは、コンテキスト演算子を使ってブレークポイントの場所、変数名、または式を修飾できます。

  • {[{[function],[source],[module] } location

  • {[{[function],[source],[module] } variable_name

  • {[function],[source],[module] } expression

角かっこには、関数名、ソース ファイル パス、およびモジュール (実行可能ファイルまたは DLL) パスを任意に組み合わせて指定できます。コンテキスト演算子は、ローカル名で隠されていてほかにアクセス方法がない外部スコープから名前を指定するなどの目的に利用できます。

使用例

EXAMPLE.CPP の行 301 にブレークポイントを設定するには、次のコードを使用します。

{,EXAMPLE.CPP,}@301

function または module のどちらかを省略する場合でも、2 つのコンマは省略できません。つまり、次の構文は無効です。

{File.c, File.exe} @143 // Invalid syntax

source および module の両方を省略する場合は、コンマを省略できます。このため、次の構文は有効です。

{Fun} @143

source または module のパスにコンマ、埋め込みスペース、または角かっこが含まれる場合は、コンテキスト パーサーが文字列を適切に認識できるように、パスを引用符で囲む必要があります。単一引用符は Windows ファイル名の一部として解釈されるので、二重引用符を使用する必要があります。この例を次に示します。

{,"a long, long, name.c", } .143

式エバリュエータが式に含まれる記号を見つけると、次の順序で記号を検索します。

  1. 構文のスコープの外部。現在のブロック (角かっこで囲まれた一連のステートメント) から、外側のブロックに進みます。現在のブロックは、現在の場所 (命令ポインタ アドレス) を含むコードです。

  2. 関数スコープ。現在の関数です。

  3. クラス スコープ。現在の場所が C++ メンバ関数内部の場合です。クラス スコープにはすべての基本クラスが含まれます。式エバリュエータは、通常の優先順位規則を使用します。

  4. 現在のモジュール。

  5. グローバル シンボル。

  6. その他のモジュール。

  7. プログラム内のパブリック シンボル。

コンテキスト演算子を使って、検索開始地点を指定したり、現在の場所をバイパスしたりします。クラスは指定できませんが、クラスのメンバ関数を指定したり、式エバリュエータで外部を検索したりできます。

参照

その他の技術情報

ネイティブ C++ の式