Gdb/Frame-Info
Next: Frame Apply, Previous: Selection, Up: Stack [Contents][Index]
8.4 Information About a Frame
There are several other commands to print information about the selected stack frame.
frame
f
When used without any argument, this command does not change which frame is selected, but prints a brief description of the currently selected stack frame. It can be abbreviated
f
. With an argument, this command is used to select a stack frame. See Selecting a Frame.info frame
info f
This command prints a verbose description of the selected stack frame, including:
- the address of the frame
- the address of the next frame down (called by this frame)
- the address of the next frame up (caller of this frame)
- the language in which the source code corresponding to this frame is written
- the address of the frame’s arguments
- the address of the frame’s local variables
- the program counter saved in it (the address of execution in the caller frame)
- which registers were saved in the frame
The verbose description is useful when something has gone wrong that has made the stack format fail to fit the usual conventions.
info frame [ frame-selection-spec ]
info f [ frame-selection-spec ]
Print a verbose description of the frame selected by
frame-selection-spec
. Theframe-selection-spec
is the same as for theframe
command (see Selecting a Frame). The selected frame remains unchanged by this command.info args [-q]
Print the arguments of the selected frame, each on a separate line.
The optional flag ‘
-q
’, which stands for ‘quiet
’, disables printing header information and messages explaining why no argument have been printed.info args [-q] [-t type_regexp] [regexp]
Like info args, but only print the arguments selected with the provided regexp(s).
If
regexp
is provided, print only the arguments whose names match the regular expressionregexp
.If
type_regexp
is provided, print only the arguments whose types, as printed by thewhatis
command, match the regular expressiontype_regexp
. Iftype_regexp
contains space(s), it should be enclosed in quote characters. If needed, use backslash to escape the meaning of special characters or quotes.If both
regexp
andtype_regexp
are provided, an argument is printed only if its name matchesregexp
and its type matchestype_regexp
.info locals [-q]
Print the local variables of the selected frame, each on a separate line. These are all variables (declared either static or automatic) accessible at the point of execution of the selected frame.
The optional flag ‘
-q
’, which stands for ‘quiet
’, disables printing header information and messages explaining why no local variables have been printed.info locals [-q] [-t type_regexp] [regexp]
Like info locals, but only print the local variables selected with the provided regexp(s).
If
regexp
is provided, print only the local variables whose names match the regular expressionregexp
.If
type_regexp
is provided, print only the local variables whose types, as printed by thewhatis
command, match the regular expressiontype_regexp
. Iftype_regexp
contains space(s), it should be enclosed in quote characters. If needed, use backslash to escape the meaning of special characters or quotes.If both
regexp
andtype_regexp
are provided, a local variable is printed only if its name matchesregexp
and its type matchestype_regexp
.The command info locals -q -t
type_regexp
can usefully be combined with the commands frame apply and thread apply. For example, your program might use Resource Acquisition Is Initialization types (RAII) such aslock_something_t
: each local variable of typelock_something_t
automatically places a lock that is destroyed when the variable goes out of scope. You can then list all acquired locks in your program by doingthread apply all -s frame apply all -s info locals -q -t lock_something_t
or the equivalent shorter form
tfaas i lo -q -t lock_something_t
Next: Frame Apply, Previous: Selection, Up: Stack [Contents][Index]