Click to Rate and Give Feedback
MSDN
MSDN Library
Visual Studio 2008
Visual Studio
Debugger Roadmap
 Context Operator
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
Visual Studio Debugger
Context Operator (C/C++ Language Expressions)

Updated: November 2007

This topic applies to:

Edition

Visual Basic

C#

C++

Web Developer

Express

Topic does not applyTopic does not apply

Native only

Topic does not apply

Standard

Topic does not applyTopic does not apply

Native only

Topic does not apply

Pro and Team

Topic does not applyTopic does not apply

Native only

Topic does not apply

Table legend:

Topic applies

Applies

Topic does not apply

Does not apply

Topic applies but command hidden by default

Command or commands hidden by default.

The context operator is an additional operator provided by the native debugger. When debugging native code, you can use the context operator to qualify a breakpoint location, variable name, or expression:

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

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

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

The braces can contain any combination of function name, source file path, and module (executable or DLL) path. The context operator is useful for purposes such as specifying a name from an outer scope that is otherwise hidden by a local name.

To set a breakpoint at line 301 of EXAMPLE.CPP:

{,EXAMPLE.CPP,}@301

If you omit either function or module, the two commas cannot be omitted. As a result, the following syntax is invalid:

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

If you omit both source and module, however, you can omit the commas. The following syntax is valid:

{Fun} @143

If the source or module path includes a comma, an embedded space, or a brace, you must use quotation marks around the path so that the context parser can properly recognize the string. Single quotation marks are considered part of a Windows file name, so you must use double quotation marks. For example,

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

When the expression evaluator encounters a symbol in an expression, it searches for the symbol in the following order:

  1. Lexical scope outward, starting with the current block, series of statements enclosed in braces, and continuing outward with the enclosing block. The current block is the code containing the current location, instruction pointer address.

  2. Function scope. The current function.

  3. Class scope, if the current location is inside a C++ member function. Class scope includes all base classes. The expression evaluator uses the normal dominance rules.

  4. Current module.

  5. Global symbols.

  6. Other modules.

  7. Public symbols in the program.

With the context operator, you specify the starting point of the search and bypass the current location. You cannot specify a class, but you can specify a member function of the class and let the expression evaluator search outward.

Other Resources

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker