コンテキスト演算子 (C/C++ 言語式)
このトピックの内容は、次の製品に該当します。
エディション |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
ネイティブのみ |
||||
Pro、Premium、Ultimate |
ネイティブのみ |
コンテキスト演算子は、ネイティブなデバッガーによって提供される追加の演算子です。 ネイティブ コードをデバッグするときは、コンテキスト演算子を使ってブレークポイントの場所、変数名、または式を修飾できます。
{[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
式エバリュエーターが式に含まれる記号を見つけると、次の順序で記号を検索します。
構文のスコープの外部。現在のブロック (角かっこで囲まれた一連のステートメント) から、外側のブロックに進みます。 現在のブロックは、現在の場所 (命令ポインター アドレス) を含むコードです。
関数スコープ。 現在の関数です。
クラス スコープ。現在の場所が C++ メンバー関数内部の場合です。 クラス スコープにはすべての基本クラスが含まれます。 式エバリュエーターは、通常の優先順位規則を使用します。
現在のモジュール。
グローバル シンボル。
その他のモジュール。
プログラム内のパブリック シンボル。
コンテキスト演算子を使って、検索開始地点を指定したり、現在の場所をバイパスしたりします。 クラスは指定できませんが、クラスのメンバー関数を指定したり、式エバリュエーターで外部を検索したりできます。