GNU Info

Info Node: (gdb.info)Expressions

(gdb.info)Expressions


Next: Variables Up: Data
Enter node , (file) or (file)node

Expressions
===========

   `print' and many other GDB commands accept an expression and compute
its value.  Any kind of constant, variable or operator defined by the
programming language you are using is valid in an expression in GDB.
This includes conditional expressions, function calls, casts and string
constants.  It unfortunately does not include symbols defined by
preprocessor `#define' commands.

   GDB supports array constants in expressions input by the user.  The
syntax is {ELEMENT, ELEMENT...}.  For example, you can use the command
`print {1, 2, 3}' to build up an array in memory that is `malloc'ed in
the target program.

   Because C is so widespread, most of the expressions shown in
examples in this manual are in C.  Note: Using GDB with Different
Languages, for information on how to use expressions in other
languages.

   In this section, we discuss operators that you can use in GDB
expressions regardless of your programming language.

   Casts are supported in all languages, not just in C, because it is so
useful to cast a number into a pointer in order to examine a structure
at that address in memory.

   GDB supports these operators, in addition to those common to
programming languages:

`@'
     `@' is a binary operator for treating parts of memory as arrays.
     Note: Artificial arrays, for more information.

`::'
     `::' allows you to specify a variable in terms of the file or
     function where it is defined.  Note: Program variables.

`{TYPE} ADDR'
     Refers to an object of type TYPE stored at address ADDR in memory.
     ADDR may be any expression whose value is an integer or pointer
     (but parentheses are required around binary operators, just as in
     a cast).  This construct is allowed regardless of what kind of
     data is normally supposed to reside at ADDR.


automatically generated by info2www version 1.2.2.9