HP (Hewlett-Packard) 5992-4701 Computer Hardware User Manual


 
error 1 + 2.3
The second example fails because the CARDINAL 1 is not type-compatible with the
REAL 2.3.
For the expressions you use in GDB commands, you can tell the GDB type checker to
skip checking; to treat any mismatches as errors and abandon the expression; or to only
issue warnings when type mismatches occur, and evaluate the expression anyway.
When you choose the last of these, GDB evaluates expressions like the second example
above, but also issues a warning.
Even if you turn type checking off, there may be other reasons related to type that
prevent GDB from evaluating an expression. For instance, GDB does not know how
to add an int and a struct foo. These particular type errors have nothing to do
with the language in use, and usually arise from expressions, such as the one described
above, which make little sense to evaluate anyway.
Each language defines to what degree it is strict about type. For instance C requires
the arguments to arithmetical operators to be numbers. In C, enumerated types and
pointers can be represented as numbers, so that they are valid arguments to
mathematical operators. See “Supported languages” (page 105), for further details on
specific languages.
GDB provides some additional commands for controlling the type checker:
set check type auto
Set type checking on or off based on the current working
language. See “Supported languages” (page 105), for the
default settings for each language.
set check type on, set
check type off
Set type checking on or off, overriding the default setting
for the current working language. Issue a warning if the
setting does not match the language default. If any type
mismatches occur in evaluating an expression while type
checking is on, GDB prints a message and aborts
evaluation of the expression.
set check type warn
Cause the type checker to issue warnings, but to always
attempt to evaluate the expression. Evaluating the
expression may still be impossible for other reasons. For
example, GDB cannot add numbers and structures.
show type
Show the current setting of the type checker, and
whether or not GDB is setting it automatically.
9.3.2 An overview of range checking
In some languages it is an error to exceed the bounds of a type; this is enforced with
run-time checks. Such range checking is meant to ensure program correctness by making
sure computations do not overflow, or indices on an array element access do not exceed
the bounds of the array.
104 Using GDB with Different Languages