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