|
|
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.