DB_COMMAND,
DB_SHOW_COMMAND,
DB_SHOW_ALL_COMMAND —
Extends the ddb command set
#include
<ddb/ddb.h>
DB_COMMAND(
command_name,
command_function);
DB_SHOW_COMMAND(
command_name,
command_function);
DB_SHOW_ALL_COMMAND(
command_name,
command_function);
The
DB_COMMAND() macro adds
command_name to the list of top-level
commands. Invoking
command_name from ddb will
call
command_function.
The
DB_SHOW_COMMAND() and
DB_SHOW_ALL_COMMAND() are roughly equivalent to
DB_COMMAND() but in these cases,
command_name is a sub-command of the ddb
show command and
show
all command, respectively.
The general command syntax:
command[
/
modifier]
address[
,count],
translates into the following parameters for
command_function:
- addr
- The address passed to the command as an argument.
- have_addr
- A boolean value that is true if the addr field is
valid.
- count
- The number of quad words starting at offset
addr that the command must process.
- modif
- A pointer to the string of modifiers. That is, a series of
symbols used to pass some options to the command. For example, the
examine command will display words in decimal
form if it is passed the modifier "d".
In your module, the command is declared as:
DB_COMMAND(mycmd, my_cmd_func)
{
if (have_addr)
db_printf("Calling my command with address %p\n", addr);
}
Then, when in ddb:
db> mycmd 0x1000 Calling my command with address 0x1000 db>
ddb(4)
This manual page was written by
Guillaume
Ballet
<
[email protected]>.