|
|
1.1 root 1: .lg 0
2: .TH ANALYZE 8
3: .UC 4
4: .SH NAME
5: analyze \- Virtual UNIX postmortem crash analyzer
6: .SH SYNOPSIS
7: .B /etc/analyze
8: [
9: .B \-s
10: swapfile
11: ] [
12: .B \-f
13: ] [
14: .B \-m
15: ] [
16: .B \-d
17: ] [
18: .B \-D
19: ] [
20: .B \-v
21: ]
22: corefile
23: [ system ]
24: .SH DESCRIPTION
25: .I Analyze
26: is the post-mortem analyzer for the state of the paging system.
27: In order to use
28: .I analyze
29: you must arrange to get a image of the memory (and possibly the
30: paging area) of the system after it crashes (see
31: .IR crash (8)).
32: .PP
33: The
34: .I analyze
35: program reads the relevant system data structures from the core
36: image file and indexing information from
37: .B /vmunix
38: (or the specified file).
39: to determine the state of the paging subsystem at the point of crash.
40: It looks at each process in the system, and the resources each is
41: using in an attempt to determine inconsistencies in the paging system
42: state. Normally, the output consists of a sequence of lines showing
43: each active process, its state (whether swapped in or not), its
44: .I p0br,
45: and the number and location of its page table pages.
46: Any pages which are locked while raw i/o is in progress, or which
47: are locked because they are
48: .I intransit
49: are also printed. (Intransit text pages often diagnose as duplicated;
50: you will have to weed these out by hand.)
51: .PP
52: The program checks that any pages in core which are marked as not
53: modified are, in fact, identical to the swap space copies.
54: It also checks for non-overlap of the swap space, and that the core
55: map entries correspond to the page tables.
56: The state of the free list is also checked.
57: .PP
58: Options to
59: .I analyze:
60: .TP
61: .B \-D
62: causes the diskmap for each process to be printed.
63: .TP
64: .B \-d
65: causes the (sorted) paging area usage to be printed.
66: .TP
67: .B \-f
68: which causes the free list to be dumped.
69: .TP
70: .B \-m
71: causes the entire coremap state to be dumped.
72: .TP
73: .B \-v
74: (long unused) which causes a hugely verbose output format to be used.
75: .PP
76: In general, the output from this program can be confused by processes
77: which were forking, swapping, or exiting or
78: happened to be in unusual states when the
79: crash occurred. You should examine the flags fields of relevant processes
80: in the output of a
81: .IR pstat (8)
82: to weed out such processes.
83: .PP
84: It is possible to look at the core dump with
85: .I adb
86: if you do
87: .IP
88: adb /vmunix /vmcore
89: .br
90: .lg 0
91: /m 80000000 #ffffffff
92: .LP
93: which fixes the map of
94: .I vmcore
95: so that symbols in data space will work.
96: Note that the debugger is looking at the physical memory at the point
97: of crash; you will have to determine which pages of physical memory
98: virtual pages are in if you wish to look at them.
99: If
100: .I analyze
101: says that a processes page tables are in page 218 (hex of course), then
102: you can look at them by looking at address 0x80043000 in the dump, i.e.
103: \*(lq80043000,80/X\*(rq will print the page of page tables.
104: .SH FILES
105: /vmunix default system namelist
106: .SH SEE ALSO
107: ps(1), crash(8), pstat(8)
108: .SH AUTHORS
109: Ozalp Babaoglu and William Joy
110: .SH DIAGNOSTICS
111: Various diagnostics about overlaps in swap mappings, missing swap mappings,
112: page table entries inconsistent with the core map, incore pages which
113: are marked clean but differ from disk-image copies, pages which are
114: locked or intransit, and inconsistencies in the free list.
115: .PP
116: It would be nice if this program analyzed the system in general, rather
117: than just the paging system in particular.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.