コンテキスト演算子 (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
式エバリュエータが式に含まれる記号を見つけると、次の順序で記号を検索します。
構文のスコープの外部。現在のブロック (角かっこで囲まれた一連のステートメント) から、外側のブロックに進みます。現在のブロックは、現在の場所 (命令ポインタ アドレス) を含むコードです。
関数スコープ。現在の関数です。
クラス スコープ。現在の場所が C++ メンバ関数内部の場合です。クラス スコープにはすべての基本クラスが含まれます。式エバリュエータは、通常の優先順位規則を使用します。
現在のモジュール。
グローバル シンボル。
その他のモジュール。
プログラム内のパブリック シンボル。
コンテキスト演算子を使って、検索開始地点を指定したり、現在の場所をバイパスしたりします。クラスは指定できませんが、クラスのメンバ関数を指定したり、式エバリュエータで外部を検索したりできます。