Debugging with GDB Manual HP WDB v6.3 (5900-2180, August 2012)
~ Bitwise complement operator. Defined on integral types. Same precedence
as ++.
., -> Structure member, and pointer-to-structure member. For convenience, GDB
regards the two as equivalent, choosing whether to dereference a pointer
based on the stored type information. Defined on struct and union data.
.*, ->* Dereferences pointers to members.
[] Array indexing. a[i] is defined as *(a+i). Same precedence as ->.
() Function parameter list. Same precedence as ->.
:: C++ scope resolution operator. Defined on struct, union, and class
types.
:: Double colons also represent the GDB scope operator (see “Expressions”
(page 63)). Same precedence as ::, above.
If an operator is redefined in the user code, GDB usually attempts to invoke the redefined version
instead of using the original meaning.
9.4.1.2 C and C++ constants
GDB allows you to express the constants of C and C++ in the following ways:
• Integer constants are a sequence of digits. Octal constants are specified by a leading '0' (that
is zero), and hexadecimal constants by a leading '0x' or '0X'. Constants can also end with
a letter 'l', specifying that the constant should be treated as a long value.
• Floating point constants are a sequence of digits, followed by a decimal point, followed by
a sequence of digits, and optionally followed by an exponent. An exponent is of the form:
'e[[+]|-]nnn', where nnn is a sequence of digits. The '+' is optional for positive exponents.
A floating-point constant may also end with a letter 'f' or 'F', specifying that the constant
should be treated as being of the float (as opposed to the default double) type; or with a
letter 'l' or `L', which specifies a long double constant.
• Enumerated constants consist of enumerated identifiers, or their integral equivalents.
• Character constants are a single character surrounded by single quotes ('), or a number or
the ordinal value of the corresponding character (usually its ASCII value). Within quotes, the
single character may be represented by a letter or by escape sequences, which are of the
form '\nnn', where nnn is the octal representation of the character's ordinal value; or of the
form '\x', where 'x' is a predefined special character―for example, '\n' for newline.
• String constants are a sequence of character constants surrounded by double quotes ("). Any
valid character constant (as described above) may appear. Double quotes within the string
must be preceded by a backslash, so for instance '"a\"b'c"' is a string of five characters.
• Pointer constants are an integral value. You can also write pointers to constants using the C
operator '&'.
• Array constants are comma-separated lists surrounded by braces '{' and '}'; for example,
'{1,2,3}' is a three-element array of integers, '{{1,2}, {3,4}, {5,6}}' is a three-by-two
array, and '{&"hi", &"there", &"fred"}' is a three-element array of pointers.
82 Using GDB with Different Languages