gdb: Expressions

 
 10.1 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 also includes preprocessor macros, if you compiled your
 program to include this information; see SeeCompilation.
 
    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 create an array of three integers.  If you pass an
 array to a function or assign it to a program variable, GDB copies the
 array to 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. SeeUsing GDB with Different Languages
 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.
      SeeArtificial Arrays Arrays, for more information.
 
 '::'
      '::' allows you to specify a variable in terms of the file or
      function where it is defined.  SeeProgram Variables Variables.
 
 '{TYPE} ADDR'
      Refers to an object of type TYPE stored at address ADDR in memory.
      The address 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.