xref: /dflybsd-src/share/man/man9/DB_COMMAND.9 (revision 24b52616fbe0af6f2905c19e79072a3736f0d43f)
1*24b52616SSascha Wildner.\"-
2*24b52616SSascha Wildner.\" Copyright (c) 2008 Guillaume Ballet
3*24b52616SSascha Wildner.\" All rights reserved.
4*24b52616SSascha Wildner.\"
5*24b52616SSascha Wildner.\" Redistribution and use in source and binary forms, with or without
6*24b52616SSascha Wildner.\" modification, are permitted provided that the following conditions
7*24b52616SSascha Wildner.\" are met:
8*24b52616SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
9*24b52616SSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
10*24b52616SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
11*24b52616SSascha Wildner.\"    notice, this list of conditions and the following disclaimer in the
12*24b52616SSascha Wildner.\"    documentation and/or other materials provided with the distribution.
13*24b52616SSascha Wildner.\"
14*24b52616SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*24b52616SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*24b52616SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*24b52616SSascha Wildner.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18*24b52616SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*24b52616SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*24b52616SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*24b52616SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*24b52616SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*24b52616SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*24b52616SSascha Wildner.\" SUCH DAMAGE.
25*24b52616SSascha Wildner.\"
26*24b52616SSascha Wildner.\" $FreeBSD: src/share/man/man9/DB_COMMAND.9,v 1.6 2012/05/20 16:43:47 gjb Exp $
27*24b52616SSascha Wildner.\"
28*24b52616SSascha Wildner.Dd July 1, 2012
29*24b52616SSascha Wildner.Dt DB_COMMAND 9
30*24b52616SSascha Wildner.Os
31*24b52616SSascha Wildner.Sh NAME
32*24b52616SSascha Wildner.Nm DB_COMMAND ,
33*24b52616SSascha Wildner.Nm DB_SHOW_COMMAND
34*24b52616SSascha Wildner.Nd Extends the ddb command set
35*24b52616SSascha Wildner.Sh SYNOPSIS
36*24b52616SSascha Wildner.In ddb/ddb.h
37*24b52616SSascha Wildner.Fo DB_COMMAND
38*24b52616SSascha Wildner.Fa command_name
39*24b52616SSascha Wildner.Fa command_function
40*24b52616SSascha Wildner.Fc
41*24b52616SSascha Wildner.Fn DB_SHOW_COMMAND "command_name" "command_function"
42*24b52616SSascha Wildner.Sh DESCRIPTION
43*24b52616SSascha WildnerThe
44*24b52616SSascha Wildner.Fn DB_COMMAND
45*24b52616SSascha Wildnermacro adds
46*24b52616SSascha Wildner.Fa command_name
47*24b52616SSascha Wildnerto the list of top-level commands.
48*24b52616SSascha WildnerInvoking
49*24b52616SSascha Wildner.Fa command_name
50*24b52616SSascha Wildnerfrom ddb will call
51*24b52616SSascha Wildner.Fa command_function .
52*24b52616SSascha Wildner.Pp
53*24b52616SSascha WildnerThe
54*24b52616SSascha Wildner.Fn DB_SHOW_COMMAND
55*24b52616SSascha Wildneris roughly equivalent to
56*24b52616SSascha Wildner.Fn DB_COMMAND
57*24b52616SSascha Wildnerbut in this case,
58*24b52616SSascha Wildner.Fa command_name
59*24b52616SSascha Wildneris a sub-command of the ddb
60*24b52616SSascha Wildner.Sy show
61*24b52616SSascha Wildnercommand.
62*24b52616SSascha Wildner.Pp
63*24b52616SSascha WildnerThe general command syntax:
64*24b52616SSascha Wildner.Cm command Ns Op Li \&/ Ns Ar modifier
65*24b52616SSascha Wildner.Ar address Ns Op Li , Ns Ar count ,
66*24b52616SSascha Wildnertranslates into the following parameters for
67*24b52616SSascha Wildner.Fa command_function :
68*24b52616SSascha Wildner.Bl -tag -width Fa -offset indent
69*24b52616SSascha Wildner.It Fa addr
70*24b52616SSascha WildnerThe address passed to the command as an argument.
71*24b52616SSascha Wildner.It Fa have_addr
72*24b52616SSascha WildnerA boolean value that is true if the addr field is valid.
73*24b52616SSascha Wildner.It Fa count
74*24b52616SSascha WildnerThe number of quad words starting at offset
75*24b52616SSascha Wildner.Fa addr
76*24b52616SSascha Wildnerthat the command must process.
77*24b52616SSascha Wildner.It Fa modif
78*24b52616SSascha WildnerA pointer to the string of modifiers.
79*24b52616SSascha WildnerThat is, a series of symbols used to pass some options to the command.
80*24b52616SSascha WildnerFor example, the
81*24b52616SSascha Wildner.Sy examine
82*24b52616SSascha Wildnercommand will display words in decimal form if it is passed the modifier "d".
83*24b52616SSascha Wildner.El
84*24b52616SSascha Wildner.Sh EXAMPLE
85*24b52616SSascha WildnerIn your module, the command is declared as:
86*24b52616SSascha Wildner.Bd -literal
87*24b52616SSascha WildnerDB_COMMAND(mycmd, my_cmd_func)
88*24b52616SSascha Wildner{
89*24b52616SSascha Wildner	if (have_addr)
90*24b52616SSascha Wildner		db_printf("Calling my command with address %p\en", addr);
91*24b52616SSascha Wildner}
92*24b52616SSascha Wildner.Ed
93*24b52616SSascha Wildner.Pp
94*24b52616SSascha WildnerThen, when in ddb:
95*24b52616SSascha Wildner.Bd -literal
96*24b52616SSascha Wildner.Bf Sy
97*24b52616SSascha Wildnerdb> mycmd 0x1000
98*24b52616SSascha WildnerCalling my command with address 0x1000
99*24b52616SSascha Wildnerdb>
100*24b52616SSascha Wildner.Ef
101*24b52616SSascha Wildner.Ed
102*24b52616SSascha Wildner.Sh "SEE ALSO"
103*24b52616SSascha Wildner.Xr ddb 4
104*24b52616SSascha Wildner.Sh AUTHOR
105*24b52616SSascha WildnerThis manual page was written by
106*24b52616SSascha Wildner.An Guillaume Ballet Aq gballet@gmail.com .
107