shithub: riscv

ref: e5f0918bebd66beb83dfa6fa1b9b21d1fa17f53b
dir: /sys/man/1/ktrace/

View raw version
.TH KTRACE 1
.SH NAME
ktrace \- interpret kernel stack dumps
.SH SYNOPSIS
.B ktrace 
[
.B -i
]
.I kernel
.I pc
.I sp
[
.I link
]
.SH DESCRIPTION
.I Ktrace
translates a hexadecimal kernel stack dump 
into a sequence of 
.IR acid (1)
commands to show the points in the call trace.
The
.I kernel
argument should be the path of the kernel being debugged,
and
.I pc
and
.I sp
are the PC and SP values given in the stack dump.
For MIPS kernels, the contents of the
.I link
register must also be supplied.
.PP
A stack trace consists of a 
.I ktrace
command followed by a series of lines containing
fields of the form
.IB location = contents \fR:
.EX
ktrace /kernel/path 80105bc1 8048e174
8048e114=80105ac6 8048e120=80140bb4 8048e134=8010031c
8048e16c=80137e45 8048e170=80105bc1 8048e178=80137e62
\&...
.EE
.PP
The trace can be edited to provide the correct kernel path
and then pasted into a shell window.
If the
.B -i
option is present, 
.I ktrace
instead prompts for the contents of the memory locations in which it is interested;
this is useful when the stack trace is on a screen rather than
in a machine readable form.
.SH SOURCE
.B /sys/src/cmd/ktrace.c
.SH SEE ALSO
.IR acid (1),
.IR rdbfs (4)
.SH BUGS
When examining a kernel trace resulting from 
an interrupt on top of other interrupts,
only the topmost call trace is printed.