Debugging with GDB (February 2008)

Table Of Contents
100 Debugging with GDB
return
return expression
You can cancel execution of a function call with the return command. If you
give an expression argument, its value is used as the return value from the
function value.
When you use return, GDB discards the selected stack frame (and all frames within
it). You can think of this as making the discarded frame return prematurely. If you wish
to specify a value to be returned, give that value as the argument to return.
This pops the selected stack frame (see Section 6.5 [Selecting a frame], page 53), and any
other frames inside of it, leaving its caller as the innermost remaining frame. That frame
becomes selected. The specified value is stored in the registers used for returning values of
functions.
The return command does not resume execution; it leaves the program stopped in the
state that would exist if the function had just returned. In contrast, the finish command
(see Section 5.2 [Continuing and stepping], page 44) resumes execution until the selected
stack frame returns naturally.
11.5 Calling program functions
call expr
Evaluate the expression expr without displaying void returned values.
You can use this variant of the print command if you want to execute a function from
your program, but without cluttering the output with void returned values. If the result
is not void, it is printed and saved in the value history.
For the A29K, a user-controlled variable call_scratch_address specifies the location
of a scratch area to be used when GDB calls a function in the target. This is necessary
because the usual method of putting the scratch area on the stack does not work in systems
that have separate instruction and data spaces.
11.6 Patching programs
By default, GDB opens the file containing the executable code of your program (or
the corefile) as read-only. This prevents accidental alteration to machine code; and it also
prevents you from intentionally patching your program binary.
If you would like to be able to patch the binary, you can specify that explicitly with the
set write command. For example, you might want to turn on internal debugging flags, or
even to make emergency repairs.
set write on
set write off
If you specify set write on’, GDB opens executable and core files for both
reading and writing; if you specify set write off (the default), GDB opens
them as read-only.