Submit #3242 ยป ddb.4.patch
| share/man/man4/ddb.4 | ||
|---|---|---|
|
.\"
|
||
|
.\" $FreeBSD: src/share/man/man4/ddb.4,v 1.7.2.6 2001/08/17 13:08:37 ru Exp $
|
||
|
.\"
|
||
|
.Dd December 7, 2017
|
||
|
.Dd June 21, 2020
|
||
|
.Dt DDB 4
|
||
|
.Os
|
||
|
.Sh NAME
|
||
| ... | ... | |
|
current line.
|
||
|
.Sh COMMANDS
|
||
|
.Bl -ohang
|
||
|
.It Cm examine
|
||
|
.It Cm x
|
||
|
.It Xo
|
||
|
.Cm examine
|
||
|
or
|
||
|
.Cm x
|
||
|
.Xc
|
||
|
Display the addressed locations according to the formats in the modifier.
|
||
|
Multiple modifier formats display multiple locations.
|
||
|
If no format is specified, the last formats specified for this command
|
||
| ... | ... | |
|
Execute an examine command with the last specified parameters to it
|
||
|
except that the last start address subtracted by the size displayed by it
|
||
|
is used as the start address.
|
||
|
.It Cm print Ns Op Cm /acdoruxz
|
||
|
.It Xo
|
||
|
.Cm print
|
||
|
.Op Cm /acdoruxz
|
||
|
or
|
||
|
.Cm p
|
||
|
.Op Cm /acdoruxz
|
||
|
.Xc
|
||
|
Print
|
||
|
.Ar addr Ns s
|
||
|
according to the modifier character (as described above for
|
||
| ... | ... | |
|
ecx = yyyyyy
|
||
|
.Ed
|
||
|
.It Xo
|
||
|
.Cm write Ns Op Cm /bhl
|
||
|
.Ar addr Ar expr1 Op Ar "expr2 ..."
|
||
|
.Cm write
|
||
|
.Op Cm /bhl
|
||
|
.Ar addr
|
||
|
.Ar expr1
|
||
|
.Op Ar "expr2 ..."
|
||
|
or
|
||
|
.Cm w
|
||
|
.Op Cm /bhl
|
||
|
.Ar addr
|
||
|
.Ar expr1
|
||
|
.Op Ar "expr2 ..."
|
||
|
.Xc
|
||
|
Write the expressions specified after
|
||
|
.Ar addr
|
||
| ... | ... | |
|
If a user text is shadowed by a normal user space debugger,
|
||
|
user space break points may not work correctly. Setting a break
|
||
|
point at the low-level code paths may also cause strange behavior.
|
||
|
.It Cm delete Ar addr
|
||
|
.It Cm delete Li \&# Ns Ar number
|
||
|
.It Cm delete Xo
|
||
|
.Ar addr
|
||
|
or
|
||
|
.Cm delete Li \&# Ns Ar number
|
||
|
or
|
||
|
.Cm d Ar addr
|
||
|
or
|
||
|
.Cm d Li \&# Ns Ar number
|
||
|
.Xc
|
||
|
Delete the break point. The target break point can be specified by a
|
||
|
break point number with
|
||
|
.Li # ,
|
||
| ... | ... | |
|
specified in the original
|
||
|
.Cm break
|
||
|
command.
|
||
|
.It Cm step Ns Op Cm /p
|
||
|
.It Xo
|
||
|
.Cm step Ns Op Cm /p
|
||
|
or
|
||
|
.Cm s Ns Op Cm /p
|
||
|
.Xc
|
||
|
Single step
|
||
|
.Ar count
|
||
|
times (the comma is a mandatory part of the syntax).
|
||
| ... | ... | |
|
On machines with software-emulated single-stepping (e.g., pmax),
|
||
|
stepping through code executed by interrupt handlers will probably
|
||
|
do the wrong thing.
|
||
|
.It Cm continue Ns Op Cm /c
|
||
|
.It Xo
|
||
|
.Cm continue Ns Op Cm /c
|
||
|
or
|
||
|
.Cm c Ns Op Cm /c
|
||
|
.Xc
|
||
|
Continue execution until a breakpoint or watchpoint.
|
||
|
If the
|
||
|
.Li c
|
||
| ... | ... | |
|
modifier is specified, print the call nesting depth and the
|
||
|
cumulative instruction count at each call or return. Otherwise,
|
||
|
only print when the matching return is hit.
|
||
|
.It Cm next Ns Op Cm /p
|
||
|
.It Cm match Ns Op Cm /p
|
||
|
.It Xo
|
||
|
.Cm next Ns Op Cm /p
|
||
|
or
|
||
|
.Cm match Ns Op Cm /p
|
||
|
.Xc
|
||
|
Stop at the matching return instruction.
|
||
|
If the
|
||
|
.Li p
|
||
| ... | ... | |
|
.Cm trace Ns Op Cm /u
|
||
|
.Op Ar frame
|
||
|
.Op , Ns Ar count
|
||
|
or
|
||
|
.Cm where Ns Op Cm /u
|
||
|
.Op Ar frame
|
||
|
.Op , Ns Ar count
|
||
|
.Xc
|
||
|
Stack trace. The
|
||
|
.Li u
|
||
| ... | ... | |
|
ddb doesn't always recover from touching bad memory. The optional
|
||
|
.Ar count
|
||
|
argument limits the search.
|
||
|
.It Cm show all procs Ns Op Cm /m
|
||
|
.It Cm ps Ns Op Cm /m
|
||
|
.It Xo
|
||
|
.Cm show all procs Ns Op Cm /m
|
||
|
or
|
||
|
.Cm ps Ns Op Cm /m
|
||
|
.Xc
|
||
|
Display all process information.
|
||
|
The process information may not be shown if it is not
|
||
|
supported in the machine, or the bottom of the stack of the
|
||
| ... | ... | |
|
Displays all watchpoints.
|
||
|
.It Xo
|
||
|
.Cm watch
|
||
|
.Ar addr Ns Li \&, Ns Ar size
|
||
|
.Ar addr Ns Op Li \&, Ns Ar size
|
||
|
.Xc
|
||
|
Set a watchpoint for a region. Execution stops
|
||
|
when an attempt to modify the region occurs.
|
||
| ... | ... | |
|
Attempts to watch wired kernel memory
|
||
|
may cause unrecoverable error in some systems.
|
||
|
Watchpoints on user addresses work best.
|
||
|
.It Cm dwatch Ar addr
|
||
|
Delete a watchpoint around
|
||
|
.Ar addr Ns .
|
||
|
.It Cm hwatch Ar addr Ns Op Li \&, Ns Ar size
|
||
|
Set a hardware watchpoint for a region.
|
||
|
.Ar size
|
||
|
defaults to 4.
|
||
|
Works like
|
||
|
.Cm watch
|
||
|
but is much faster.
|
||
|
Requires hardware support.
|
||
|
You can only have a couple of active hardware watchpoints
|
||
|
at a time depending on your hardware.
|
||
|
.It Cm dhwatch Ar addr Ns Op Li \&, Ns Ar size
|
||
|
Delete a hardware watchpoint that monitors the specified memory range.
|
||
|
For a watchpoint to be deleted the provided memory range must be completely
|
||
|
within the monitored memory range.
|
||
|
.Ar size
|
||
|
defaults to 4.
|
||
|
.It Cm acpidb
|
||
|
If the kernel was compiled with
|
||
|
.Dv ACPI_DEBUG ,
|
||