COMPILATION LISTING OF SEGMENT debug_fnp Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1620.8 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* DEBUG_FNP - A tool for analyzing FNP dumps and debugging FNP software. */ 12 13 /* Written February 1977 by Larry Johnson */ 14 /* Modified 7/24/78 by J. Stern to add buffer_status command */ 15 /* Modified September 1978 by Larry Johnson for call_trace command */ 16 17 debug_fnp: db_fnp: proc; 18 19 /* Automatic and related things */ 20 21 dcl code fixed bin (35); 22 dcl i fixed bin; 23 dcl fnp fixed bin; /* Current fnp, if working on live fnp */ 24 dcl corep ptr; /* Pointer to fnp core image in a segment */ 25 dcl arg_ptr ptr; 26 dcl arg_len fixed bin; 27 dcl arg char (arg_len) based (arg_ptr); 28 29 dcl 1 auto_expr_info like expr_info aligned automatic; 30 dcl 1 auto_cmd_info like cmd_info aligned automatic; 31 dcl 1 auto_env like env aligned automatic; 32 33 dcl 1 user_symbol_table aligned, 34 2 cnt fixed bin, 35 2 maxcnt fixed bin, 36 2 entry (50) unal, 37 3 one_symbol like sym unal; 38 39 /* Constants */ 40 41 dcl name char (9) int static options (constant) init ("debug_fnp"); 42 43 /* Commands are numbered internally as follows: 44* 01 - fnp 45* 02 - dump 46* 03 - image 47* 04 - map 48* 05 - e 49* 06 - quit 50* 07 - convert_address 51* 08 - display 52* 09 - line 53* 10 - . 54* 11 - patch 55* 12 - = 56* 13 - what 57* 14 - why 58* 15 - regs 59* 16 - buffer 60* 17 - buffer_chain 61* 18 - set 62* 19 - set_break 63* 20 - start 64* 21 - reset_break 65* 22 - list_break 66* 23 - dump_dir 67* 24 - dumps 68* 25 - last_dump 69* 26 - prev_dump 70* 27 - trace_mask 71* 28 - start_trace 72* 29 - stop_trace 73* 30 - print_trace 74* 31 - select_fnp 75* 32 - next_dump 76* 33 - block 77* 34 - block_chain 78* 35 - flags 79* 36 - explain 80* 37 - buffer_status 81* 38 - call_trace 82* 39 - set_flag 83* 40 - clear_flag 84* 41 - idle_time 85* 42 - ic_sample 86* 43 - sample_time 87* 44 - mdisp_data 88* 45 - apropos 89* 46 - when */ 90 91 /* List of commands and their abbreviations. An index in this array is translated by cmd_no into a command number */ 92 93 dcl cmd_list (61) char (16) int static options (constant) init ( 94 "fnp", /* 1 */ 95 "dump", /* 2 */ 96 "image", /* 3 */ 97 "map", /* 4 */ 98 "e", /* 5 */ 99 "quit", /* 6 */ 100 "q", /* 7 */ 101 "convert_address", /* 8 */ 102 "cva", /* 9 */ 103 "display", /* 10 */ 104 "d", /* 11 */ 105 "line", /* 12 */ 106 ".", /* 13 */ 107 "patch", /* 14 */ 108 "=", /* 15 */ 109 "what", /* 16 */ 110 "why", /* 17 */ 111 "regs", /* 18 */ 112 "buffer", /* 19 */ 113 "buf", /* 20 */ 114 "buffer_chain", /* 21 */ 115 "bufc", /* 22 */ 116 "set", /* 23 */ 117 "set_break", /* 24 */ 118 "sb", /* 25 */ 119 "start", /* 26 */ 120 "sr", /* 27 */ 121 "reset_break", /* 28 */ 122 "rb", /* 29 */ 123 "list_break", /* 30 */ 124 "lb", /* 31 */ 125 "dump_dir", /* 32 */ 126 "dumps", /* 33 */ 127 "last_dump", /* 34 */ 128 "prev_dump", /* 35 */ 129 "trace_mask", /* 36 */ 130 "start_trace", /* 37 */ 131 "stop_trace", /* 38 */ 132 "print_trace", /* 39 */ 133 "select_fnp", /* 40 */ 134 "next_dump", /* 41 */ 135 "block", /* 42 */ 136 "blk", /* 43 */ 137 "block_chain", /* 44 */ 138 "blkc", /* 45 */ 139 "flags", /* 46 */ 140 "explain", /* 47 */ 141 "buffer_status", /* 48 */ 142 "bstat", /* 49 */ 143 "call_trace", /* 50 */ 144 "trace_call", /* 51 */ 145 "trace_calls", /* 52 */ 146 "set_flag", /* 53 */ 147 "clear_flag", /* 54 */ 148 ".q", /* 55 */ 149 "idle_time", /* 56 */ 150 "ic_sample", /* 57 */ 151 "sample_time", /* 58 */ 152 "mdisp_data", /* 59 */ 153 "apropos", /* 60 */ 154 "when"); /* 61 */ 155 156 /* This array maps the index of "cmd_list" into a command number */ 157 158 dcl cmd_no (61) fixed bin (11) unal int static options (constant) init ( 159 01, 02, 03, 04, 05, 06, 06, 07, 07, 08, /* 01-10 */ 160 08, 09, 10, 11, 12, 13, 14, 15, 16, 16, /* 11-20 */ 161 17, 17, 18, 19, 19, 20, 20, 21, 21, 22, /* 21-30 */ 162 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, /* 31-40 */ 163 32, 33, 33, 34, 34, 35, 36, 37, 37, 38, /* 41-50 */ 164 38, 38, 39, 40, 06, 41, 42, 43, 44, 45, /* 51-60 */ 165 46); /* 61 */ 166 167 /* This array, indexed by command number says whether some fnp, dump, or 168* core image must be selected before the command can be used. */ 169 170 dcl select_required (46) bit (1) unal int static options (constant) init ( 171 "0"b, "0"b, "0"b, "1"b, "0"b, "0"b, "0"b, "1"b, "1"b, "0"b, /* 01-10 */ 172 "1"b, "1"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "1"b, "1"b, /* 11-20 */ 173 "1"b, "1"b, "0"b, "0"b, "0"b, "0"b, "1"b, "1"b, "1"b, "1"b, /* 21-30 */ 174 "1"b, "0"b, "1"b, "1"b, "0"b, "0"b, "1"b, "1"b, "1"b, "1"b, /* 31-40 */ 175 "1"b, "1"b, "1"b, "1"b, "0"b, "1"b); /* 41-46 */ 176 177 /* All commands are passed through the following entry array. */ 178 179 dcl cmd_entry (46) entry (ptr, fixed bin, ptr, ptr) variable init ( 180 db_fnp_env_$fnp_cmd, /* 1 */ 181 db_fnp_env_$dump_cmd, /* 2 */ 182 db_fnp_env_$image_cmd, /* 3 */ 183 db_fnp_util_$print_module_table, /* 4 */ 184 execute_command, /* 5 */ 185 quit_command, /* 6 */ 186 db_fnp_convert_address_, /* 7 */ 187 db_fnp_disp_cmd_$display, /* 8 */ 188 db_fnp_env_$line, /* 9 */ 189 dot_command, /* 10 */ 190 db_fnp_disp_cmd_$patch, /* 11 */ 191 db_fnp_disp_cmd_$equal, /* 12 */ 192 db_fnp_env_$what, /* 13 */ 193 db_fnp_dumps_$why, /* 14 */ 194 db_fnp_dumps_$regs, /* 15 */ 195 db_fnp_disp_cmd_$buffer, /* 16 */ 196 db_fnp_disp_cmd_$buffer_chain, /* 17 */ 197 db_fnp_sym_util_$set_command, /* 18 */ 198 db_fnp_break_$set, /* 19 */ 199 db_fnp_break_$start, /* 20 */ 200 db_fnp_break_$reset, /* 21 */ 201 db_fnp_break_$list, /* 22 */ 202 db_fnp_env_$dump_dir, /* 23 */ 203 db_fnp_env_$dumps, /* 24 */ 204 db_fnp_env_$last_dump, /* 25 */ 205 db_fnp_env_$prev_dump, /* 26 */ 206 db_fnp_trace_$mask, /* 27 */ 207 db_fnp_trace_$start_trace, /* 28 */ 208 db_fnp_trace_$stop_trace, /* 29 */ 209 db_fnp_trace_$print_trace, /* 30 */ 210 db_fnp_env_$select_fdump_fnp, /* 31 */ 211 db_fnp_env_$next_dump, /* 32 */ 212 db_fnp_disp_cmd_$block, /* 33 */ 213 db_fnp_disp_cmd_$block_chain, /* 34 */ 214 db_fnp_disp_cmd_$flags, /* 35 */ 215 db_fnp_sym_util_$explain, /* 36 */ 216 db_fnp_buffer_status_, /* 37 */ 217 db_fnp_call_trace_, /* 38 */ 218 db_fnp_disp_cmd_$set_flag, /* 39 */ 219 db_fnp_disp_cmd_$clear_flag, /* 40 */ 220 db_fnp_scheduler_$idle_time, /* 41 */ 221 db_fnp_scheduler_$ic_sample, /* 42 */ 222 db_fnp_scheduler_$sample_time, /* 43 */ 223 db_fnp_scheduler_$mdisp_data, /* 44 */ 224 db_fnp_sym_util_$apropos, /* 45 */ 225 db_fnp_env_$when); /* 46 */ 226 227 /* External stuff */ 228 229 dcl com_err_ entry options (variable); 230 dcl cu_$cp entry (ptr, fixed bin, fixed bin (35)); 231 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 232 dcl cu_$arg_count entry (fixed bin); 233 dcl db_fnp_break_$list entry (ptr, fixed bin, ptr, ptr); 234 dcl db_fnp_break_$reset entry (ptr, fixed bin, ptr, ptr); 235 dcl db_fnp_break_$set entry (ptr, fixed bin, ptr, ptr); 236 dcl db_fnp_break_$start entry (ptr, fixed bin, ptr, ptr); 237 dcl db_fnp_buffer_status_ entry (ptr, fixed bin, ptr, ptr); 238 dcl db_fnp_call_trace_ entry (ptr, fixed bin, ptr, ptr); 239 dcl db_fnp_convert_address_ entry (ptr, fixed bin, ptr, ptr); 240 dcl db_fnp_disp_cmd_$flags entry (ptr, fixed bin, ptr, ptr); 241 dcl db_fnp_disp_cmd_$display entry (ptr, fixed bin, ptr, ptr); 242 dcl db_fnp_disp_cmd_$patch entry (ptr, fixed bin, ptr, ptr); 243 dcl db_fnp_disp_cmd_$equal entry (ptr, fixed bin, ptr, ptr); 244 dcl db_fnp_disp_cmd_$buffer entry (ptr, fixed bin, ptr, ptr); 245 dcl db_fnp_disp_cmd_$buffer_chain entry (ptr, fixed bin, ptr, ptr); 246 dcl db_fnp_disp_cmd_$block entry (ptr, fixed bin, ptr, ptr); 247 dcl db_fnp_disp_cmd_$block_chain entry (ptr, fixed bin, ptr, ptr); 248 dcl db_fnp_disp_cmd_$set_flag entry (ptr, fixed bin, ptr, ptr); 249 dcl db_fnp_disp_cmd_$clear_flag entry (ptr, fixed bin, ptr, ptr); 250 dcl db_fnp_dumps_$regs entry (ptr, fixed bin, ptr, ptr); 251 dcl db_fnp_dumps_$why entry (ptr, fixed bin, ptr, ptr); 252 dcl db_fnp_env_$fnp_cmd entry (ptr, fixed bin, ptr, ptr); 253 dcl db_fnp_env_$dump_cmd entry (ptr, fixed bin, ptr, ptr); 254 dcl db_fnp_env_$image_cmd entry (ptr, fixed bin, ptr, ptr); 255 dcl db_fnp_env_$dumps entry (ptr, fixed bin, ptr, ptr); 256 dcl db_fnp_env_$last_dump entry (ptr, fixed bin, ptr, ptr); 257 dcl db_fnp_env_$prev_dump entry (ptr, fixed bin, ptr, ptr); 258 dcl db_fnp_env_$next_dump entry (ptr, fixed bin, ptr, ptr); 259 dcl db_fnp_env_$select_fdump_fnp entry (ptr, fixed bin, ptr, ptr); 260 dcl db_fnp_env_$dump_dir entry (ptr, fixed bin, ptr, ptr); 261 dcl db_fnp_env_$what entry (ptr, fixed bin, ptr, ptr); 262 dcl db_fnp_env_$when entry (ptr, fixed bin, ptr, ptr); 263 dcl db_fnp_env_$line entry (ptr, fixed bin, ptr, ptr); 264 dcl db_fnp_env_$init entry (ptr); 265 dcl db_fnp_env_$term entry (ptr); 266 dcl db_fnp_reader_$get_command entry (ptr); 267 dcl db_fnp_scheduler_$ic_sample entry (ptr, fixed bin, ptr, ptr); 268 dcl db_fnp_scheduler_$idle_time entry (ptr, fixed bin, ptr, ptr); 269 dcl db_fnp_scheduler_$mdisp_data entry (ptr, fixed bin, ptr, ptr); 270 dcl db_fnp_scheduler_$sample_time entry (ptr, fixed bin, ptr, ptr); 271 dcl db_fnp_sym_util_$apropos entry (ptr, fixed bin, ptr, ptr); 272 dcl db_fnp_sym_util_$set_command entry (ptr, fixed bin, ptr, ptr); 273 dcl db_fnp_sym_util_$explain entry (ptr, fixed bin, ptr, ptr); 274 dcl db_fnp_trace_$mask entry (ptr, fixed bin, ptr, ptr); 275 dcl db_fnp_trace_$print_trace entry (ptr, fixed bin, ptr, ptr); 276 dcl db_fnp_trace_$start_trace entry (ptr, fixed bin, ptr, ptr); 277 dcl db_fnp_trace_$stop_trace entry (ptr, fixed bin, ptr, ptr); 278 dcl db_fnp_util_$print_module_table entry (ptr, fixed bin, ptr, ptr); 279 dcl ioa_ entry options (variable); 280 281 dcl (cleanup, program_interrupt) condition; 282 283 dcl (addr, hbound, length, string) builtin; 284 285 /* Initialization */ 286 287 expr_infop = addr (auto_expr_info); 288 cmd_infop = addr (auto_cmd_info); 289 envp = addr (auto_env); 290 cmd_info.flush = "1"b; 291 cmd_info.envp = envp; 292 expr_info.user_tablep = addr (user_symbol_table); 293 user_symbol_table.cnt = 0; 294 user_symbol_table.maxcnt = hbound (user_symbol_table.entry, 1); 295 string (expr_info.flags) = "0"b; 296 297 call db_fnp_env_$init (envp); /* Initalize environment */ 298 fnp = env.fnp; 299 corep = env.corep; 300 on program_interrupt begin; 301 cmd_info.flush = "1"b; 302 go to next_cmd; 303 end; 304 on cleanup call db_fnp_env_$term (envp); 305 306 call cu_$arg_count (i); 307 if i > 0 then do; /* There is an arg */ 308 call cu_$arg_ptr (1, arg_ptr, arg_len, code); 309 cmd_info.inbuf = ";" || arg; 310 cmd_info.commandp = addr (cmd_info.inbuf); 311 cmd_info.commandl = arg_len + 1; 312 cmd_info.flush, cmd_info.error, cmd_info.endline = "0"b; 313 end; 314 315 316 /* Command dispatcher */ 317 318 next_cmd: /* Everyone returns here for next command */ 319 call db_fnp_reader_$get_command (cmd_infop); 320 do i = 1 to hbound (cmd_list, 1); /* Check against all known commands */ 321 if operand = cmd_list (i) then do; 322 if select_required (cmd_no (i)) then 323 if ^(env.fnp_sw | env.dump_sw | env.image_sw) then do; 324 call ioa_ ("No FNP, dump, or image selected."); 325 cmd_info.flush = "1"b; 326 go to next_cmd; 327 end; 328 call cmd_entry (cmd_no (i)) (corep, fnp, cmd_infop, expr_infop); 329 fnp = env.fnp; /* In case changed */ 330 corep = env.corep; 331 go to next_cmd; 332 end; 333 end; 334 call ioa_ ("Undefined command: ^a", operand); 335 go to next_cmd; 336 337 /* Come here to stop command completely */ 338 339 done: call db_fnp_env_$term (envp); 340 return; 341 342 343 /* DOT COMMAND - Doesn't do much */ 344 345 dot_command: proc; 346 347 call ioa_ ("^a", name); 348 return; 349 350 end dot_command; 351 352 /* QUIT COMMAND - Ends the program */ 353 354 quit_command: proc; 355 356 go to done; 357 358 end quit_command; 359 360 /* EXECUTE COMMAND - pass rest of command line to the current command processor */ 361 362 execute_command: proc; 363 364 call cu_$cp (addr (command), length (command), code); 365 cmd_info.flush = "1"b; /* We dont look at rest of line */ 366 return; 367 368 end execute_command; 369 1 1 /* Begin include file ..... debug_fnp_data.incl.pl1 */ 1 2 1 3 /* Describes various structures used by the debug_fnp command */ 1 4 1 5 /* Written February 1977 by Larry Johnson */ 1 6 1 7 /* Structures describing a symbol table used by the debug_fnp command, 1 8* to find values for common FNP symbols. */ 1 9 1 10 dcl db_fnp_symbols_$db_fnp_symbols_ ext; 1 11 1 12 dcl symbol_tablep ptr; 1 13 1 14 dcl 1 symbol_table aligned based (symbol_tablep), 1 15 2 cnt fixed bin, /* Number of entries */ 1 16 2 maxcnt fixed bin, /* Max count */ 1 17 2 entry (symbol_table.cnt) unal, 1 18 3 one_symbol like sym unal; 1 19 1 20 dcl symp ptr; /* Pointer to one symbol */ 1 21 1 22 dcl 1 sym unal based (symp), 1 23 2 name char (6), 1 24 2 value fixed bin (17), 1 25 2 len fixed bin (17), /* Number of words */ 1 26 2 reloc fixed bin (17), 1 27 2 type fixed bin (17), 1 28 2 flag_mem char (6), /* If non blank, name of word in which this is a flag */ 1 29 2 explain bit (18), /* Offset to explanation for symbol */ 1 30 2 pad bit (18); 1 31 1 32 dcl exptextp ptr; 1 33 1 34 dcl 1 exptext aligned based (exptextp), /* Symbol explanation entry */ 1 35 2 len fixed bin (8) unal, 1 36 2 data char (exptext.len) unal; 1 37 1 38 /* Values for sym.reloc, which is relocation required to find the symbol */ 1 39 1 40 dcl (reloc_abs init (0), /* Value is absolute */ 1 41 reloc_tib init (1), /* Value is relative to current tib addr */ 1 42 reloc_hwcm init (2), /* Value is relative to current hwcm */ 1 43 reloc_sfcm init (3), /* Value is relative to software comm region */ 1 44 reloc_meters init (4)) /* Value is relative to tib meters */ 1 45 int static options (constant); 1 46 1 47 /* Values for sym.type, which is the mode to be used in displaying symbol */ 1 48 1 49 dcl (type_oct init (0), /* Octal, default for most symbols */ 1 50 type_char init (1), /* Ascii characters */ 1 51 type_addr init (2), /* Address to be converted to mod|offset */ 1 52 type_clock init (3), /* Multics clock value */ 1 53 type_inst init (4), /* Machine instruction */ 1 54 type_op init (5), /* Interpreter opblock format */ 1 55 type_dec init (6), /* Decimal */ 1 56 type_bit init (7), /* In bits */ 1 57 type_ebcdic init (8)) /* 8-bit ebcdic characters */ 1 58 int static options (constant); 1 59 1 60 dcl long_type_names (0:8) char (12) int static options (constant) init ( 1 61 "octal", "character", "address", "clock", "instruction", "opblock", "decimal", "bit", "ebcdic"); 1 62 dcl short_type_names (0:8) char (4) int static options (constant) init ( 1 63 "oct", "ch", "addr", "ck", "inst", "op", "dec", "bit", "ebc"); 1 64 1 65 1 66 /* Structure of suplmental data used in evaluating expressions */ 1 67 1 68 dcl expr_infop ptr; 1 69 1 70 dcl 1 expr_info aligned based (expr_infop), 1 71 2 flags, 1 72 3 star_known bit (1) unal, /* Value of "*" is known */ 1 73 3 tib_known bit (1) unal, /* TIB addresses may be used */ 1 74 3 hwcm_known bit (1) unal, /* HWCM address may be used */ 1 75 3 sfcm_known bit (1) unal, /* SFCM address may be used */ 1 76 3 pad bit (32) unal, 1 77 2 star_addr fixed bin, /* Value of "*" */ 1 78 2 tib_addr fixed bin, /* Address of TIB */ 1 79 2 hwcm_addr fixed bin, /* Address of HWCM */ 1 80 2 sfcm_addr fixed bin, /* Address of SFCM */ 1 81 2 type fixed bin, /* Expression type (mode for printing) */ 1 82 2 len fixed bin, /* Implied length of expression */ 1 83 2 user_tablep ptr; /* Pointer to a user symbol table */ 1 84 1 85 1 86 /* Structure of opcode table of machine instructions */ 1 87 1 88 dcl db_fnp_opcodes_$ ext; 1 89 1 90 dcl optablep ptr; 1 91 1 92 dcl 1 optable aligned based (optablep), 1 93 2 cnt fixed bin, 1 94 2 entry (optable.cnt) unal, 1 95 3 one_op like op; 1 96 1 97 dcl opp ptr; 1 98 1 99 dcl 1 op unal based (opp), 1 100 2 name char (6), /* The mneumonic */ 1 101 2 code bit (12), /* The opcode */ 1 102 2 mask bit (12), /* Mask that says where the opcode is */ 1 103 2 type fixed bin (11), /* Type of display required */ 1 104 2 pad bit (18); 1 105 1 106 /* Values for op.type are: 1 107* 0 - storage reference 1 108* 1 - non-storage reference (immediate), 1 109* 2 - non-storage reference (iacxn only), 1 110* 3 - non-storage reference (shifts), 1 111* 4 - non-storage reference (no operands) */ 1 112 1 113 1 114 /* Stuctures used while parsing commands into operands */ 1 115 1 116 dcl cmd_infop ptr; 1 117 1 118 dcl 1 cmd_info aligned based (cmd_infop), 1 119 2 inbuf char (256), /* For reading lines */ 1 120 2 opbuf char (256), /* Used for operand in undoubling quotes */ 1 121 2 commandp ptr, /* Address of unparsed part of command */ 1 122 2 commandl fixed bin, /* Length of unparsed part */ 1 123 2 operandp ptr, /* Address of current operand */ 1 124 2 operandl fixed bin, /* And its length */ 1 125 2 error bit (1), /* Set if error parsing operand */ 1 126 2 endline bit (1), /* Set if no more operands on line */ 1 127 2 opstring bit (1), /* Set if operand was unquoted string */ 1 128 2 flush bit (1), /* If set, rest of input line will be ignored */ 1 129 2 envp ptr; /* Pointer to the debug_fnp environment structure */ 1 130 1 131 dcl command char (cmd_info.commandl) based (cmd_info.commandp); 1 132 dcl operand char (cmd_info.operandl) based (cmd_info.operandp); 1 133 1 134 /* The following structure describes the current debug_fnp environment. */ 1 135 /* It specifies whether we are working on a dump, fnp, core image, etc. */ 1 136 1 137 dcl envp ptr; 1 138 1 139 dcl 1 env aligned based (envp), 1 140 2 corep ptr, /* Ptr to current dump or core-image. Null means live FNP */ 1 141 2 fnp fixed bin, /* Current fnp number */ 1 142 2 dump_dir char (168) unal, /* Directory where dumps are found */ 1 143 2 dir char (168) unal, /* Directory for current dump or core image */ 1 144 2 ename char (32) unal, /* Ename for current dump or core image */ 1 145 2 tty_name char (32), /* Name of current channel */ 1 146 2 segp ptr, /* Pointer to base of current segment */ 1 147 2 flags unal, 1 148 3 fnps_configured bit (8), /* Says which FNP's appear in config deck */ 1 149 3 fnp_sw bit (1), /* 1 if currently working on fnp */ 1 150 3 image_sw bit (1), /* 1 if currently working on a core-image */ 1 151 3 dump_sw bit (1), /* 1 if current working on a dump */ 1 152 3 fdump_sw bit (1), /* 1 if current dump is a fdump */ 1 153 3 pad bit (24), 1 154 2 dump_time fixed bin (71); /* Clock time dump occured */ 1 155 1 156 /* Structure of data defining table of interpreter opblock names */ 1 157 1 158 dcl db_fnp_opblocks_$ ext; 1 159 1 160 dcl opblock_tablep ptr; 1 161 1 162 dcl 1 opblock_table aligned based (opblock_tablep), 1 163 2 cnt fixed bin, 1 164 2 name (0:opblock_table.cnt) char (6) unal; 1 165 1 166 /* End include file ..... debug_fnp_data.incl.pl1 */ 370 371 372 end debug_fnp; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1502.3 debug_fnp.pl1 >dumps>old>recomp>debug_fnp.pl1 370 1 06/19/81 2115.0 debug_fnp_data.incl.pl1 >ldd>include>debug_fnp_data.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. addr builtin function dcl 283 ref 287 288 289 292 310 364 364 arg based char unaligned dcl 27 ref 309 arg_len 000110 automatic fixed bin(17,0) dcl 26 set ref 308* 309 311 arg_ptr 000106 automatic pointer dcl 25 set ref 308* 309 auto_cmd_info 000124 automatic structure level 1 dcl 30 set ref 288 auto_env 000342 automatic structure level 1 dcl 31 set ref 289 auto_expr_info 000112 automatic structure level 1 dcl 29 set ref 287 cleanup 001466 stack reference condition dcl 281 ref 304 cmd_entry 001176 automatic entry variable initial array dcl 179 set ref 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 179* 328 cmd_info based structure level 1 dcl 1-118 cmd_infop 001504 automatic pointer dcl 1-116 set ref 288* 290 291 301 309 310 310 311 312 312 312 318* 321 321 325 328* 334 334 334 364 364 364 364 364 364 364 364 365 cmd_list 000027 constant char(16) initial array unaligned dcl 93 ref 320 321 cmd_no 000002 constant fixed bin(11,0) initial array unaligned dcl 158 ref 322 328 cnt 000520 automatic fixed bin(17,0) level 2 dcl 33 set ref 293* code 000100 automatic fixed bin(35,0) dcl 21 set ref 308* 364* command based char unaligned dcl 1-131 set ref 364 364 364 364 commandl 202 based fixed bin(17,0) level 2 dcl 1-118 set ref 311* 364 364 364 364 commandp 200 based pointer level 2 dcl 1-118 set ref 310* 364 364 364 364 corep based pointer level 2 in structure "env" dcl 1-139 in procedure "db_fnp" ref 299 330 corep 000104 automatic pointer dcl 24 in procedure "db_fnp" set ref 299* 328* 330* cu_$arg_count 000014 constant entry external dcl 232 ref 306 cu_$arg_ptr 000012 constant entry external dcl 231 ref 308 cu_$cp 000010 constant entry external dcl 230 ref 364 db_fnp_break_$list 000016 constant entry external dcl 233 ref 179 db_fnp_break_$reset 000020 constant entry external dcl 234 ref 179 db_fnp_break_$set 000022 constant entry external dcl 235 ref 179 db_fnp_break_$start 000024 constant entry external dcl 236 ref 179 db_fnp_buffer_status_ 000026 constant entry external dcl 237 ref 179 db_fnp_call_trace_ 000030 constant entry external dcl 238 ref 179 db_fnp_convert_address_ 000032 constant entry external dcl 239 ref 179 db_fnp_disp_cmd_$block 000050 constant entry external dcl 246 ref 179 db_fnp_disp_cmd_$block_chain 000052 constant entry external dcl 247 ref 179 db_fnp_disp_cmd_$buffer 000044 constant entry external dcl 244 ref 179 db_fnp_disp_cmd_$buffer_chain 000046 constant entry external dcl 245 ref 179 db_fnp_disp_cmd_$clear_flag 000056 constant entry external dcl 249 ref 179 db_fnp_disp_cmd_$display 000036 constant entry external dcl 241 ref 179 db_fnp_disp_cmd_$equal 000042 constant entry external dcl 243 ref 179 db_fnp_disp_cmd_$flags 000034 constant entry external dcl 240 ref 179 db_fnp_disp_cmd_$patch 000040 constant entry external dcl 242 ref 179 db_fnp_disp_cmd_$set_flag 000054 constant entry external dcl 248 ref 179 db_fnp_dumps_$regs 000060 constant entry external dcl 250 ref 179 db_fnp_dumps_$why 000062 constant entry external dcl 251 ref 179 db_fnp_env_$dump_cmd 000066 constant entry external dcl 253 ref 179 db_fnp_env_$dump_dir 000104 constant entry external dcl 260 ref 179 db_fnp_env_$dumps 000072 constant entry external dcl 255 ref 179 db_fnp_env_$fnp_cmd 000064 constant entry external dcl 252 ref 179 db_fnp_env_$image_cmd 000070 constant entry external dcl 254 ref 179 db_fnp_env_$init 000114 constant entry external dcl 264 ref 297 db_fnp_env_$last_dump 000074 constant entry external dcl 256 ref 179 db_fnp_env_$line 000112 constant entry external dcl 263 ref 179 db_fnp_env_$next_dump 000100 constant entry external dcl 258 ref 179 db_fnp_env_$prev_dump 000076 constant entry external dcl 257 ref 179 db_fnp_env_$select_fdump_fnp 000102 constant entry external dcl 259 ref 179 db_fnp_env_$term 000116 constant entry external dcl 265 ref 304 339 db_fnp_env_$what 000106 constant entry external dcl 261 ref 179 db_fnp_env_$when 000110 constant entry external dcl 262 ref 179 db_fnp_reader_$get_command 000120 constant entry external dcl 266 ref 318 db_fnp_scheduler_$ic_sample 000122 constant entry external dcl 267 ref 179 db_fnp_scheduler_$idle_time 000124 constant entry external dcl 268 ref 179 db_fnp_scheduler_$mdisp_data 000126 constant entry external dcl 269 ref 179 db_fnp_scheduler_$sample_time 000130 constant entry external dcl 270 ref 179 db_fnp_sym_util_$apropos 000132 constant entry external dcl 271 ref 179 db_fnp_sym_util_$explain 000136 constant entry external dcl 273 ref 179 db_fnp_sym_util_$set_command 000134 constant entry external dcl 272 ref 179 db_fnp_trace_$mask 000140 constant entry external dcl 274 ref 179 db_fnp_trace_$print_trace 000142 constant entry external dcl 275 ref 179 db_fnp_trace_$start_trace 000144 constant entry external dcl 276 ref 179 db_fnp_trace_$stop_trace 000146 constant entry external dcl 277 ref 179 db_fnp_util_$print_module_table 000150 constant entry external dcl 278 ref 179 dump_sw 152(10) based bit(1) level 3 packed unaligned dcl 1-139 ref 322 endline 210 based bit(1) level 2 dcl 1-118 set ref 312* entry 2 000520 automatic structure array level 2 packed unaligned dcl 33 set ref 294 env based structure level 1 dcl 1-139 envp 214 based pointer level 2 in structure "cmd_info" dcl 1-118 in procedure "db_fnp" set ref 291* envp 001506 automatic pointer dcl 1-137 in procedure "db_fnp" set ref 289* 291 297* 298 299 304* 322 322 322 329 330 339* error 207 based bit(1) level 2 dcl 1-118 set ref 312* expr_info based structure level 1 dcl 1-70 expr_infop 001502 automatic pointer dcl 1-68 set ref 287* 292 295 328* flags based structure level 2 in structure "expr_info" dcl 1-70 in procedure "db_fnp" set ref 295* flags 152 based structure level 2 in structure "env" packed unaligned dcl 1-139 in procedure "db_fnp" flush 212 based bit(1) level 2 dcl 1-118 set ref 290* 301* 312* 325* 365* fnp 2 based fixed bin(17,0) level 2 in structure "env" dcl 1-139 in procedure "db_fnp" ref 298 329 fnp 000102 automatic fixed bin(17,0) dcl 23 in procedure "db_fnp" set ref 298* 328* 329* fnp_sw 152(08) based bit(1) level 3 packed unaligned dcl 1-139 ref 322 hbound builtin function dcl 283 ref 294 320 i 000101 automatic fixed bin(17,0) dcl 22 set ref 306* 307 320* 321 322 328* image_sw 152(09) based bit(1) level 3 packed unaligned dcl 1-139 ref 322 inbuf based char(256) level 2 dcl 1-118 set ref 309* 310 ioa_ 000152 constant entry external dcl 279 ref 324 334 347 length builtin function dcl 283 ref 364 364 maxcnt 1 000520 automatic fixed bin(17,0) level 2 dcl 33 set ref 294* name 000413 constant char(9) initial unaligned dcl 41 set ref 347* op based structure level 1 packed unaligned dcl 1-99 operand based char unaligned dcl 1-132 set ref 321 334* operandl 206 based fixed bin(17,0) level 2 dcl 1-118 ref 321 334 334 operandp 204 based pointer level 2 dcl 1-118 ref 321 334 program_interrupt 001474 stack reference condition dcl 281 ref 300 select_required 000000 constant bit(1) initial array unaligned dcl 170 ref 322 string builtin function dcl 283 set ref 295* sym based structure level 1 packed unaligned dcl 1-22 user_symbol_table 000520 automatic structure level 1 dcl 33 set ref 292 user_tablep 10 based pointer level 2 dcl 1-70 set ref 292* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. com_err_ 000000 constant entry external dcl 229 db_fnp_opblocks_$ external static fixed bin(17,0) dcl 1-158 db_fnp_opcodes_$ external static fixed bin(17,0) dcl 1-88 db_fnp_symbols_$db_fnp_symbols_ external static fixed bin(17,0) dcl 1-10 exptext based structure level 1 dcl 1-34 exptextp automatic pointer dcl 1-32 long_type_names internal static char(12) initial array unaligned dcl 1-60 opblock_table based structure level 1 dcl 1-162 opblock_tablep automatic pointer dcl 1-160 opp automatic pointer dcl 1-97 optable based structure level 1 dcl 1-92 optablep automatic pointer dcl 1-90 reloc_abs internal static fixed bin(17,0) initial dcl 1-40 reloc_hwcm internal static fixed bin(17,0) initial dcl 1-40 reloc_meters internal static fixed bin(17,0) initial dcl 1-40 reloc_sfcm internal static fixed bin(17,0) initial dcl 1-40 reloc_tib internal static fixed bin(17,0) initial dcl 1-40 short_type_names internal static char(4) initial array unaligned dcl 1-62 symbol_table based structure level 1 dcl 1-14 symbol_tablep automatic pointer dcl 1-12 symp automatic pointer dcl 1-20 type_addr internal static fixed bin(17,0) initial dcl 1-49 type_bit internal static fixed bin(17,0) initial dcl 1-49 type_char internal static fixed bin(17,0) initial dcl 1-49 type_clock internal static fixed bin(17,0) initial dcl 1-49 type_dec internal static fixed bin(17,0) initial dcl 1-49 type_ebcdic internal static fixed bin(17,0) initial dcl 1-49 type_inst internal static fixed bin(17,0) initial dcl 1-49 type_oct internal static fixed bin(17,0) initial dcl 1-49 type_op internal static fixed bin(17,0) initial dcl 1-49 NAMES DECLARED BY EXPLICIT CONTEXT. db_fnp 001231 constant entry external dcl 17 debug_fnp 001241 constant entry external dcl 17 done 001571 constant label dcl 339 ref 356 dot_command 001602 constant entry internal dcl 345 ref 179 execute_command 001640 constant entry internal dcl 362 ref 179 next_cmd 001431 constant label dcl 318 ref 302 326 331 335 quit_command 001627 constant entry internal dcl 354 ref 179 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2474 2650 1675 2504 Length 3156 1675 154 271 577 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME db_fnp 876 external procedure is an external procedure. on unit on line 300 64 on unit on unit on line 304 68 on unit dot_command 76 internal procedure is assigned to an entry variable. quit_command 64 internal procedure is assigned to an entry variable. execute_command 76 internal procedure is assigned to an entry variable. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME db_fnp 000100 code db_fnp 000101 i db_fnp 000102 fnp db_fnp 000104 corep db_fnp 000106 arg_ptr db_fnp 000110 arg_len db_fnp 000112 auto_expr_info db_fnp 000124 auto_cmd_info db_fnp 000342 auto_env db_fnp 000520 user_symbol_table db_fnp 001176 cmd_entry db_fnp 001502 expr_infop db_fnp 001504 cmd_infop db_fnp 001506 envp db_fnp THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_var call_ext_out_desc call_ext_out return tra_ext enable shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_count cu_$arg_ptr cu_$cp db_fnp_break_$list db_fnp_break_$reset db_fnp_break_$set db_fnp_break_$start db_fnp_buffer_status_ db_fnp_call_trace_ db_fnp_convert_address_ db_fnp_disp_cmd_$block db_fnp_disp_cmd_$block_chain db_fnp_disp_cmd_$buffer db_fnp_disp_cmd_$buffer_chain db_fnp_disp_cmd_$clear_flag db_fnp_disp_cmd_$display db_fnp_disp_cmd_$equal db_fnp_disp_cmd_$flags db_fnp_disp_cmd_$patch db_fnp_disp_cmd_$set_flag db_fnp_dumps_$regs db_fnp_dumps_$why db_fnp_env_$dump_cmd db_fnp_env_$dump_dir db_fnp_env_$dumps db_fnp_env_$fnp_cmd db_fnp_env_$image_cmd db_fnp_env_$init db_fnp_env_$last_dump db_fnp_env_$line db_fnp_env_$next_dump db_fnp_env_$prev_dump db_fnp_env_$select_fdump_fnp db_fnp_env_$term db_fnp_env_$what db_fnp_env_$when db_fnp_reader_$get_command db_fnp_scheduler_$ic_sample db_fnp_scheduler_$idle_time db_fnp_scheduler_$mdisp_data db_fnp_scheduler_$sample_time db_fnp_sym_util_$apropos db_fnp_sym_util_$explain db_fnp_sym_util_$set_command db_fnp_trace_$mask db_fnp_trace_$print_trace db_fnp_trace_$start_trace db_fnp_trace_$stop_trace db_fnp_util_$print_module_table ioa_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 179 000452 17 001230 287 001247 288 001251 289 001253 290 001255 291 001257 292 001260 293 001262 294 001263 295 001265 297 001266 298 001275 299 001300 300 001302 301 001316 302 001322 304 001325 306 001351 307 001360 308 001362 309 001401 310 001420 311 001423 312 001426 318 001431 320 001440 321 001445 322 001456 324 001476 325 001512 326 001515 328 001516 329 001534 330 001537 331 001541 333 001542 334 001544 335 001570 339 001571 340 001600 345 001601 347 001607 348 001625 354 001626 356 001634 362 001637 364 001645 365 001665 366 001671 ----------------------------------------------------------- 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