Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

savecore(1M)

ts_dptbl(4)

crash(1M)

NAME

crash − examine system images

SYNOPSIS

/usr/etc/crash [ −d dumpfile ] [ −n namelist ] [ −w output-file ]

DESCRIPTION

The crash command is used to examine the system memory image of a running or a crashed system by formatting and printing control structures, tables, and other information.  Command line arguments to crash are dumpfile, namelist, and output-file.

OPTIONS

−d dumpfile Specify dumpfile as the file containing the system memory image.  The default dumpfile is /dev/mem.  The system image can also be the pathname of a dump file generated by the savecore utility. 

−n namelist Specify the text file namelist which contains the symbol table information needed for symbolic access to the system memory image to be examined.  The default namelist is /dev/ksyms.  If a system image from another machine is to be examined, the corresponding text file must be copied from that machine. 

−w output-file When the crash command is invoked, a session is initiated.  The output from a crash session is directed to output-file. The default output-file is the standard output. 

USAGE

Input during a crash session is of the form:

function [ argument... ]

where function is one of the crash functions described in the Functions subsection of this manual page, and arguments are qualifying data that indicate which items of the system image are to be printed. 

The default for process-related items is the current process for a running system or the process that was running at the time of the crash for a crashed system.  Similarly, the default for thread-related items is the current thread for a running system or the thread that was running at the time of the crash for a crash system.  If the contents of a table are being dumped, the default is all active table entries. 

Function Options

The following function options are available to crash functions wherever they are semantically valid.  Valid function options are shown in Functions.

−e Display every entry in a table. 

−f Display the full structure. 

−l Display all relevant locking information. 

−p Interpret all address arguments in the command line as physical addresses.  If the addresses specified are not physical addresses, results are inconsistent. 

−s process Specify a process slot other than the default. 

−w file Redirect the output of a function to file.

The functions mode, defproc, and redirect correspond to the function options −p, −s, and −w.  The mode function may be used to set the address translation mode to physical or virtual for all subsequently entered functions; defproc sets the value of the process slot argument for subsequent functions; and redirect redirects all subsequent output. 

Output from crash functions may be piped to another program in the following way:

function [ argument... ] ! shell_command

For example,

mount ! grep rw

writes all mount table entries with an rw flag to the standard output.  The redirection option (−w) cannot be used with this feature. 

Depending on the context of the function, numeric arguments are assumed to be in a specific radix.  Counts are assumed to be decimal.  Addresses are always hexadecimal.  Table address arguments larger than the size of the function table are interpreted as hexadecimal addresses; those smaller are assumed to be decimal slots in the table.  Default bases on all arguments may be overridden.  The C conventions for designating the bases of numbers are recognized.  A number that is usually interpreted as decimal is interpreted as hexadecimal if it is preceded by 0x and as octal if it is preceded by 0.  Decimal override is designated by 0d, and binary by 0b. 

Aliases for functions may be any uniquely identifiable initial substring of the function name.  Traditional aliases of one letter, such as p for proc, remain valid. 

Many functions accept different forms of entry for the same argument.  Requests for table information accept a table entry number, a physical address, a virtual address, a symbol, a range, or an expression.  A range of slot numbers may be specified in the form a−b where a and b are decimal numbers.  An expression consists of two operands and an operator.  An operand may be an address, a symbol, or a number; the operator may be +, −, ∗, /, &,or |.  An operand that is a number should be preceded by a radix prefix if it is not a decimal number (0 for octal, 0x for hexadecimal, 0b for binary).  The expression must be enclosed in parentheses.  Other functions accept any of these argument forms that are meaningful. 

Two abbreviated arguments to crash functions are used throughout.  Both accept data entered in several forms.  They may be expanded into the following:

table_entry = table entry | address | symbol | range | expression

start_addr = address | symbol | expression

Functions

? [−w file]
List available functions.

!command
Escape to the shell and execute command.

as [−e] [−f] [−l] [−p] [−w file] [proc...]
Print information on process address space. If the −l option is specified, all locks relevant to the address space structure are also displayed. 

base [−w file] number ... 
Print number in binary, octal, decimal, and hexadecimal.  A number in a radix other than decimal should be preceded by a prefix that indicates its radix as follows: 0x, hexadecimal; 0, octal; and 0b, binary. 

buffer [−w file] [−format] bufferslot

buffer [−w file] [−format|] [−p]start_addr
Alias: b
Print the contents of a buffer in the designated format. The following format designations are recognized: −b, byte; −c, character; −d, decimal; −x, hexadecimal; −o, octal; and, −i, inode.  If no format is given, the previous format is used.  The default format at the beginning of a crash session is hexadecimal. 

bufhdr [−f] [−l] [−w file] [[−p]table_entry...]
Alias: buf
Print system buffer headers. The −f option produces different output depending on whether the buffer is local or remote (contains RFS data).  If the −l option is specified, the contents of the locks pertaining to the buffer header structure are also displayed. 

callout
[ −l ] [ −w file ]
Alias: c
Print the callout table. If the −l option is specified, the contents of the locks pertaining to the callout structure are also displayed. 

class [−w file] [table_entry...]
Print information about process scheduler classes.

cpu [−w file] cpu_addr ... 
Display the cpu structure pointed to by start_addr.

dblock [−e] [−w file] [−c class...]

dblock [−e] [−w file] [[−p] table_entry...]
Print allocated streams data block headers. If the class option (−c) is used, only data block headers for the class specified is printed. 

defproc [−w file] [−c] [−r]

defproc [−w file] [slot]
Set the value of the process slot argument. The process slot argument may be set to the current process’ slot number (−c) or the slot number may be specified.  If the −r option is specified, the process slot number and the current thread pointer are reset (the process slot number is set to the current process’ slot number and the current thread pointer is set to the currently running thread).  If no argument is entered, the value of the previously set slot number is printed.  At the start of a crash session, the process slot is set to the current process. 

defthread [−w file] [−r] [−c | thread_addr]
With no argument defthread displays the address of the current thread.  If −c is specified, the current thread is set to point to the currently running thread. If an address is specified the current thread is specified to be that thread.  If −r is specified, the default process is also set to be the process pertaining to current thread. 

dispq [−w file] [table_entry...]
Print the dispatcher (scheduler) queues.

ds [−w file] virtual_address ... 
Print the data symbol whose address is closest to, but not greater than, the address entered.

file [−e] [−f] [[−p] [−w file]table_entry...]
Alias: f
Print the file table. 

findaddr [−w file] table slot
Print the address of slot in table.  Only tables available to the size function are available to findaddr. 

findslot [−w file] virtual_address ... 
Print the table, entry slot number, and offset for the address entered. Only tables available to the size function are available to findslot. 

fs [−f] [−w file] [[−p]table_entry...]
Alias: vfssw
Print the file system information table.

gdp [−e] [−f] [−l] [−w file] [[−p]table_entry...]
Print the gift descriptor protocol table. If the −l option is specified, display all relevant lock information. 

hat [−a] [−w file] start_addr ... 
Display the hat structure pointed to by start_addr. If the −a option is specified, the chain of hat structures is displayed. 

help [−w file] function ... 
Print a description of the named function, including syntax and aliases.

hment [−a] [−w file] start_addr ... 
Display the hment structure pointed to by start_addr. If the −a option is specified, the chain of hment structures is displayed. 

kfp [−w file] [thread_addr]
Print the kernel frame pointer (kfp) for the start of a kernel stack trace. If thread_addr is specified the kfp for that thread is printed. 

kmastat [−w file]
Print kernel memory allocator statistics.

lck [−e] [−w file] [[−p]lock_addr...]
Alias: l
Print record locking information. If the −e option is used or lock address arguments are given, the record lock list is printed.  If no argument is entered, information on locks relative to UFS inodes is printed. 

linkblk [−e] [−w file] [[−p]table_entry...]
Print the linkblk table. 

lock [−w file] lock_addr ... 
Dump the contents of the lockinfo structure pointed to by lock_addr.

lockinfo [−w file]
If locktrace is enabled, display the contents of the lockinfo table. 

lwp [−w file] [lwp_addr...]
Display the lwp structure pointed to by lwp_addr. If no address is specified as an argument, the lwp structure associated with the current thread is displayed. 

major [−w file] [entry ...]
Print the MAJOR table. 

map [−w file] mapname ... 
Print the map structure of the given mapname.

mblock [−e] [−w file] [[−p]table_entry...]
Print allocated streams message block headers.

mode [−w file] [mode]
Set address translation of arguments to virtual (v) or physical (p) mode.  If no mode argument is given, the current mode is printed.  At the start of a crash session, the mode is virtual. 

mount [−f] [−w file] [[−p]table_entry...]
Alias: m, vfs
Print information about mounted file systems.

mutex [−w file] mutex_addr ... 
Dump the contents of the mutex pointed to by mutex_addr.

mutextable [−w file]
Display every entry in the mutex_init_table. 

nfsnode [−f] [−l] [−w file] [node_addr]
Print the NFS remote nodes. If the −l option is specified, display all relevant locking information. 

nm [−w file] symbol ... 
Print value and type for the given symbol.

od [−p] [−w file] [−format] [−mode] [−s process] global_symbol [count]
Alias: rd
Print count values starting at start_addr in one of the following formats:  character (−c), decimal (−d), hexadecimal (−x), octal (−o), ASCII (−a), or hexadecimal/character (−h), and one of the following modes: long (−l), short (−t), or byte (−b).  The default mode for character and ASCII formats is byte; the default mode for decimal, hexadecimal, and octal formats is long.  The format −h prints both hexadecimal and character representations of the addresses dumped; no mode needs to be specified.  When format or mode is omitted, the previous value is used.  At the start of a crash session, the format is hexadecimal and the mode is long.  If no count is entered, 1 is assumed. 

page [−e] [−l] [−w file] [[−p] table_entry ...]
Print information about pages. If the −l option is specified, display all relevant locking information. 

pcb [−w file] [thread_addr] [−f]
Print the process control block.  If no arguments are given, the active pcb for the current thread is printed.  If thread_addr is specified, the pcb associated with that thread is printed.  pcb accepts the −f option (refer to the section Function Options). 

pcfsnode [−w file] [node_address]
Print the PCFS file and directory node tables.

pmgrp [−a] [−w file] start_addr ... 
Display the pmgrp structure pointed to by start_addr. If the −a option is specified, the chain of pmgrp structures is displayed. 

prnode [−e] [−f] [−l] [−w file] [[−p] table_entry...]
Print information about the private data of processes being traced. If the −l option is specified, all relevant locking information is also displayed. 

proc [−e] [−l] [−f] [−w file] [[−p] table_entry ... #procid ...]

proc [−l] [−f] [−w file] [−r]
Alias: p
Print the process table. Process table information may be specified in two ways. First, any mixture of table entries and process IDs may be entered.  Each process ID must be preceded by a #.  Alternatively, process table information for runnable processes may be specified with the runnable option (−r).  If the −l option is specified, all relevant locking information is displayed. 

pte [−w file] start_addr ... 
Display the pte structure pointed to by start_addr.

pty [−e] [−f] [−w file] [−s] [−h] [−l] [−p table_entry] [−t type]
Print the pseudo ttys presently configured. The −l, −h and −s options give information about the STREAMS modules ldterm, ptem and pckt, respectively.  If the −t option is used, the table for the single pty type specified is printed. 

qrun [−w file]
Print the list of scheduled streams queues.

queue [−e] [−f] [−w file] [[−p]table_entry...]
Print streams queues.

quit Alias: q
Terminate the crash session. 

rcvd [−e] [−f] [−l] [−w file] [[−p]table_entry...]
Print the receive descriptor table. If −l is specified, all relevant locking information is also displayed. 

rduser [−e] [−l] [−w file] [[−p]table_entry...]
Print the receive descriptor user table. If −l is specified, all relevant locking information is also displayed. 

redirect [−w file] [−c]

redirect [−w file] [newfile]
Used with a file name, redirects output of a crash session to newfile.  If no argument is given, the file name to which output is being redirected is printed.  Alternatively, the close option (−c) closes the previously set file and redirects output to the standard output. 

resource [−l] [−w file]
Print the RFS advertise table. If the −l is specified, all relevant locking information is also displayed. 

rtdptbl [−w file] [table_entry...]
Print the real-time scheduler parameter table. See rt_dptbl(4). 

rtproc [−w file]
Print information about processes in the real-time scheduler class.

rwlock [−w file] rw_addr ... 
Dump the contents of the rwlock (read/write lock) pointed to by rw_addr.

search [−p] [−w file] [−m mask]  pattern  start_addr  length
Print the words in memory that match pattern, beginning at the start_addr for length words.  The mask is ANDed (&) with each memory word and the result compared against the pattern.  The mask defaults to 0xffffffff. 

sema [−w file] sema_addr ... 
Dump the contents of the semaphore pointed to by sema_addr.

size [−w file] [−x] [structure_name ... ]
Print the size of the designated structure.  The −x option prints the size in hexadecimal.  If no argument is given, a list of the structure names for which sizes are available is printed. 

sment [−w file] start_addr ... 
Display the sment structure pointed to by start_addr.

smgrp [−a] [−w file] start_addr ... 
Display the smgrp structure pointed to by start_addr. If the −a option is specified, the chain of smgrp structures is displayed. 

sndd [−e] [−f] [−l] [−w file] [[−p]table_entry...]
Print the RFS send descriptor table. If the −l option is specified, all relevant locking information is also displayed. 

snode [−e] [−f] [−l] [−w file] [[−p]table_entry...]
Print information about open special files. If the −l option is specified, all relevant locking information is also displayed. 

srmount [−l] [−w file] [−p] sr_addr
Print the server mount entry pointed to by sr_addr. If the −l option is specified, all relevant locking information is also displayed. 

stack [−w file] [−u] [−p] [thread]

stack [−w file] [−k] [−p] [thread]
Alias: s
Dump the stack.  The −u option prints the user stack.  The −k option prints the kernel stack.  If no arguments are entered, the kernel stack for the current thread is printed. 

status [−w file]
Print system statistics.

stream [−e] [−f] [−w file] [[−p]start_addr...]
Print the streams table.

strstat [−w file]
Print streams statistics.

trace [−w file] [[−p] [start_addr]]
Alias: t
Print stack trace. Displays the stack trace of the currently running or the specified thread.

thread [−e] [−f] [−w file]  [[−p]start_addr...]
With no option, displays the current thread.  If −e is specified, all threads in the system are displayed.  Otherwise all threads pointed to by the addresses specified as argument are displayed. 

ts [−w file] virtual_address ... 
Print text symbol closest to the designated address.

tsdptbl [−w file] [table_entry...]
Print the time-sharing dispatcher parameter table. See ts_dptbl(4). 

tsproc [−w file]
Print information about processes in the time-sharing scheduler class.

tty [−e] [−f] [−l] [−w file] [−t type[[−p]table_entry...]]

tty [−e] [−f] [−l] [−w file] [[−p]start_addr]
Valid types: pp, iu. 
Print the tty table. If no arguments are given, the tty table for both tty types is printed. If the −t option is used, the table for the single tty type specified is printed.  If no argument follows the type option, all entries in the table are printed.  A single tty entry may be specified using start_addr. The −l option prints the line discipline information. 

uinode
[−d]

uinode
[−e] [−f] [−l] [−r] [−w file] [[−p]table_entry...]
Alias: ui
Print the UFS inode table. If the −l option is specified, all relevant locking information is also displayed. The −r option will display all free UFS inodes. The −d option will list the address and i-number of all UFS inodes in use and on the free list. 

user [−e] [−f] [−l] [−w file] [process]
Alias: u
Print the user structure for the designated process. If the −l option is specified, display all relevant locking information. 

var [−w file]
Alias: v
Print the tunable system parameters.

vfs [−f] [−w file] [[−p]table_entry...]
Alias: mount, m
Print information about mounted file systems.

vfssw [−f] [−w file] [[−p]table_entry...]
Alias: fs
Print information about configured file system types.

vnode [−w file] [−l] [[−p]vnode_addr...]
Print information about vnodes. If the −l option is specified, all the relevant locking information is displayed. 

vtop [−w file] [−s process] start_addr...
Print the physical address translation of the virtual address start_addr.

FILES

/dev/mem system image of currently running system

/dev/ksyms system namelist

SEE ALSO

savecore(1M), ts_dptbl(4)

SunOS 5.1/x86  —  Last change: 31 May 1993

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026