Next: Registers, Previous: Convenience Vars, Up: Data
gdb also supplies some convenience functions. These have a syntax similar to convenience variables. A convenience function can be used in an expression just like an ordinary function; however, a convenience function is implemented internally to gdb.
These functions do not require gdb to be configured with
Python support, which means that they are always available.
$_isvoid (expr)void. Otherwise it
returns zero.
A void expression is an expression where the type of the result
is void. For example, you can examine a convenience variable
(see Convenience Variables) to check whether
it is void:
(gdb) print $_exitcode
$1 = void
(gdb) print $_isvoid ($_exitcode)
$2 = 1
(gdb) run
Starting program: ./a.out
[Inferior 1 (process 29572) exited normally]
(gdb) print $_exitcode
$3 = 0
(gdb) print $_isvoid ($_exitcode)
$4 = 0
In the example above, we used $_isvoid to check whether
$_exitcode is void before and after the execution of the
program being debugged. Before the execution there is no exit code to
be examined, therefore $_exitcode is void. After the
execution the program being debugged returned zero, therefore
$_exitcode is zero, which means that it is not void
anymore.
The void expression can also be a call of a function from the
program being debugged. For example, given the following function:
void
foo (void)
{
}
The result of calling it inside gdb is void:
(gdb) print foo ()
$1 = void
(gdb) print $_isvoid (foo ())
$2 = 1
(gdb) set $v = foo ()
(gdb) print $v
$3 = void
(gdb) print $_isvoid ($v)
$4 = 1
These functions require gdb to be configured with
Python support.
$_memeq(buf1, buf2, length)$_regex(str, regex)Python's
regular expression support.
$_streq(str1, str2)$_strlen(str)gdb provides the ability to list and get help on convenience functions.
help function