05/05/86 analyze_multics, azm Syntax as a command: azm {-control_args} Function: invokes a subsystem that aids in system crash analysis. It can analyze dumps created by the BCE dump command and copied into the Multics hierarchy by the copy_dump command. It can also analyze processes saved by the answering service after a fatal process error and copied by the copy_deadproc command. Control arguments: -abbrev, -ab enables abbreviation expansion of request lines. -no_abbrev, -nab does not enable abbreviation expansion of request lines. (Default) -no_prompt suppresses the prompt for request lines in the request loop. -no_start_up, -nsu does not execute any startup exec_com. (Default) -profile PATH, -pf PATH specifies the pathname of the profile to use for abbreviation expansion. The suffix "profile" is added if necessary. This control argument implies -abbrev. -prompt STR sets the request loop prompt to STR. The default is the ioa_ STR: ^/azm^[ (^d)^]:^2x -request STR, -rq STR executes STR as an azm request line before entering the request loop. -start_up, -su executes the exec_com "start_up.azmec" upon invocation of azm. This start_up exec_com is first searched for in your home directory, then in your project directory (>udd>Project_id), and last in >site. The first exec_com found is used. -quit exits azm after execution of other arguments. It can be used with -request. List of operations: absolute_address virtual-addr, absadr virtual-addr translates a "virtual address" to an absolute memory address. add_request_table path, arqt path adds a user-defined request table in the list of request tables being searched by the current azm invocation. apply virtual-addr {range} command_line, ap virtual-addr {range} command_line extracts all or part of a segment specified by virtual-addr from the selected dump and places a copy in a temporary segment. This pathname is passed as the last argument in the command_line. apte {proc_indicator} {-control_args} displays active page table entry (APTE) information for processes in a dump whose states match the states specified. Control arguments are -all, -blocked, -count, -current, -page_tbl_lock, -ready, -run, -stopped, and -wait. associative_memory {-control_args}, am {-control_args} displays SDW and/or PTW associative memories. Control arguments are -all, -dump, -pageno, -prds, -ptw, -sdw, and -segno. aste segno/segname {-control_args} displays active segment table (AST), page table, and trailer information. The default displays active segment table entry (ASTE) and page table information only. Control arguments are -aste, -at, -brief, -long, -page_table, and -trailer. configuration_deck, {card_names} {-control_args}, cd {card_names} {-control_args} displays the contents of the configuration deck in the selected dump. This request works exactly like the standard pcd command, except that it gets the configuration deck from the dump. Control arguments are -brief, -exclude, -long, and -match. display virtual-addr {exp} {range} {-control_args}, d virtual-addr {exp} {range} {-control_args} displays a selected portion of a segment in a dump or a saved process. Control arguments are -as, -character, -instruction, -long, -octal, -ptr, -pptr, -pptrx, and -ptrx. display_absolute abs-addr {range} {-control_args}, da abs-addr {range} {-control_args} dumps an absolute memory address space in the dump. Control arguments are -character, -instruction, -octal, -ptr, -pptr, -pptrx, and -ptrx. events {-control_args}, ev {-control_args} displays significant events, in reverse chronological order, from a dump. Control arguments are -last, -long, and -time. history_regs {hregs_specifier} {-control_args}, hregs {hregs_specifier} {-control_args} displays a composite analysis or octal dump of the processor history registers. The hregs specifiers are -condition, -dump, -pds, and virtual-adr. The control arguments are -au -cu, -du, -ou, -interpret, -octal, -no_thread, and thread. list_dumps {path} {-control_args}, lsd {path} {-control_args} lists the dumps and/or the dead processes in the selected dump directory. Control arguments are -deadproc and -fdump. list_processes {proc_indicator} {-control_args}, lsp {proc_indicator} {-control_args} lists all known processes in the selected dump. Control arguments are -all, -blocked, -count, -curent, -page_tbl_lock, -ready, -run -stopped, and -wait. machine_conditions {mc_specifier} {-control_args}, mc {mc_specifier} {-control_args} displays all or parts of machine conditions based on the given pointer. The mc specifiers are -dump, -pds, -prds, and virtual-addr. The control arguments are -eis, -faults, -long, -mc_err, -misc, -octal, ponters, -ppr, -registers -scu, -time, and -tpr. page_trace {-control_args}, pgt {-control_args} displays the contents of the page trace table in the current process data segment (PDS). Control arguments are -all and -last. replace segno/segname path, rp segno/segname path replaces the segment designated by segno/segname in the current translation table with another segment designated by path. scus prints the memory address space (in octal) of each SCU from the registers saved in the dump. sdw displays the SDWs in the current process' DSEG. search virtual-addr {range} search_string, srh virtual-addr {range} search_string searches a segment starting at virtual-addr matching on search_string. segment_name arguments, name arguments prints the segment name, giving either a virtual address or a segment number. segment_number arguments, number arguments prints the segment number, giving either a virtual address or a segment name. select_deadproc {name}, sldp {name} selects and translates a dead process that has been copied into the Multics hierarchy by the copy_deadproc tool. select_dump {name} {-control_args}, sld {name} {-control_args} selects and translates a dump of a system crash. Control arguments are -first, -last, -next, and -previous. select_process {proc_indicator} {-control_args}, slp {proc_indicator} {-control_args} selects a process for examination. Control arguments are -brief, -cpu, -dbr, and -long. set ptr_n virtual-addr sets an internal temporary pointer like a CPU pointer register (i.e., "pr6" or "sp"). stack virtual-addr {-control_args}, sk virtual-addr {-control_args} traces a given stack. Control arguments are -arguments, -for, -force, -forward, and -long. syserr_log {-control_args}, slog {-control_args} displays all or parts of the syserr_log and syserr_data segments from the dump. Control arguments are -action, -exclude, -expand, -last, and -match. traffic_control_queue {-control_args}, tcq {-control_args} displays process DBR, process state, process ID, current CPU, and user ID from the traffic controller's eligible queue, as well as the "process number" in the dump. Control arguments are -all and -ready. value ptr_ni...ptr_nn, v ptr_ni...ptr_nn, value -all, v -all displays the current value of one or all the temporary pointers. verify_associative_memory {-control_args}, vfam {-control_args} performs a consistency check on the associative memories stored at the time of a dump by comparing them to the appropriate entries in the "dump dseg" and page tables. Control arguments are -ptw and -sdw. why tries to find the stack that has a call to syserr_real$syserr_real or call_bos$call_bos and sets the temporary pointers pr6 and prfr to the stack frame. List of active function operations: [display virtual-addr {exp} {range} {-control_args}], [d virtual-addr {exp} {range} {-control_args}] returns a selected portion of a segment in a dump or a saved process. Control arguments are -as, -character, -instruction, -long, -octal, -ptr, -pptr, -pptrx, and -ptrx. [display_absolute abs-addr {range} {-control_args}], [da abs-addr {range} {-control_args}] returns an absolute memory address space in the dump. Control arguments are -character, -instruction, -octal, -ptr, -pptr, -pptrx, and -ptrx. [list_processes {proc_indicator} {-control_args}], [lsp {proc_indicator} {-control_args}] returns the process_ids meeting the control argument criteria, otherwise it returns a null string. Control arguments are -all, -blocked, -count, -curent, -page_tbl_lock, -ready, -run -stopped, and -wait. [search virtual-addr {range} search_string], [srh virtual-addr {range} search_string] returns the virtual addresses matching the criteria specified. [segment_name arguments], [name arguments] returns the segment number, giving either a virtual address or a segment name. [segment_number arguments], [number arguments] returns the segment number, giving either a virtual address or a segment name. [verify_associative_memory {-control_args}], [vfam {-control_args}] returns true if any inconsistencies are found, false otherwise. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved