Restrictions and Special Considerations

When you are debugging C and C++ programs, the following general restrictions apply:

When you use an expression as an argument to a CodeView command that takes multiple arguments, such as the Memory Fill (MF) command, the expression cannot contain spaces. For example, &count+6 is allowed, but &count + 6 is interpreted as three separate arguments. Some commands, such as the Display Expression (?) command, permit spaces in expressions.

CodeView command names are not case sensitive, but C and C++ identifiers are case sensitive unless you turn off case sensitivity with the commands on the Options menu or the Options (O) command.

You cannot call an intrinsic function or an inlined function in a CodeView expression unless it appears at least once as a normal function.

CodeView limits casts of pointer types to one level of indirection. For example, (char *)sym is accepted, but (char **)sym is not. An expression such as char far *( far *) is also not supported.

The C++ scope operator (::) has lower precedence in CodeView expressions than in the C++ language. In CodeView, its precedence falls between the base (:>) and postfix (++, --) operators and the unary operators (!, &, *, for example). In C++, it has the highest precedence.

CodeView imposes additional restrictions on C++ expressions. These restrictions and other special considerations when debugging C++ are described in “Using C++ Expressions”.