COMPILATION LISTING OF SEGMENT probe_ctl_requests_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 11/11/88 1545.9 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 16* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 17* Added format control comment to make the source more readable. 18* END HISTORY COMMENTS */ 19 20 21 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 22 23 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 probe_ctl_requests_: 26 proc (); 27 28 call probe_error_$malfunction (); /* dummy entry */ 29 30 /* probe_ctl_requests_ 31* 32* quit 33* goto 34* step 35* continue_to 36* continue 37* halt 38* pause 39* 40* Modified 23 Sept 79 for new probe_break_mgr_ */ 41 /* goto and continue_to changed to not guess line number 08/31/81 S. Herbst */ 42 /* Fixed goto to reset a temporary break 12/02/81 S. Herbst */ 43 /* Added "mode meter" code to halt and continue requests 09/23/82 S. Herbst */ 44 /* Do "start" control order in halt and pause to prevent lost wakeups 09/02/83 S. Herbst */ 45 /* Changed "quit" to call probe_break_mgr_$reset_all_pause_breaks 04/19/84 S. Herbst */ 46 /* Fixed "quit" to quit out of probe even if a condition occurs 01/15/85 Steve Herbst */ 47 48 49 dcl P_probe_info_ptr pointer parameter; 50 51 dcl code fixed bin (35); 52 dcl 1 new_source_info aligned like source_info; 53 54 dcl (new_page_faults, old_page_faults, page_faults, real_minutes, 55 real_seconds) fixed bin; 56 dcl (virtual_msec, virtual_10ksec, virtual_usec) 57 fixed bin; 58 dcl (new_clock, new_vclock, old_clock, old_vclock) 59 fixed bin (71); 60 dcl ( 61 probe_et_$bad_label_frame, 62 probe_et_$breakless, 63 probe_et_$noarg, 64 probe_et_$too_many_args 65 ) fixed bin (35) external static; 66 67 68 dcl probe_announce_entry_ entry (pointer); 69 dcl probe_break_mgr_$is_temporary_break 70 entry (ptr, ptr) returns (bit (1)); 71 dcl probe_break_mgr_$reset_all_pause_breaks 72 entry (ptr); 73 dcl probe_break_mgr_$reset_break_at_line 74 entry (ptr, ptr, fixed bin, bit (1) aligned, 75 fixed bin (35)); 76 dcl probe_break_mgr_$set_break 77 entry (ptr, ptr, fixed bin, pointer, 78 fixed bin (21), fixed bin (35)); 79 dcl probe_error_ entry options (variable); 80 dcl probe_error_$malfunction 81 entry options (variable); 82 dcl probe_get_$line entry (ptr, ptr, fixed bin, bit (36) aligned, 83 fixed bin, fixed bin (35)); 84 dcl probe_listen_ entry (ptr, fixed bin (35)); 85 dcl cpu_time_and_paging_ entry (fixed bin, fixed bin (71), fixed bin); 86 dcl ioa_$ioa_switch entry options (variable); 87 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 88 89 90 dcl command_abort_ condition; 91 92 dcl (addr, clock, divide, length, null, pointer, vclock) 93 builtin; 94 SOME_ERROR: /* general for error code type errors */ 95 call probe_error_ (probe_info_ptr, code); 96 /* never returns */ 97 goto MAIN_RETURN; /* just in case */ 98 99 100 MAIN_RETURN: 101 return; /* only such exit from this procedure */ 102 103 quit_request: 104 entry (P_probe_info_ptr); 105 106 /* * This request exits probe */ 107 108 probe_info_ptr = P_probe_info_ptr; 109 110 call reject_argument (); /* can't say "quit foo" */ 111 112 if probe_info.execute then do; /* try to return to our caller */ 113 114 probe_info.executing_quit_request = "1"b; 115 /* to prevent an error returning to listener */ 116 117 call probe_break_mgr_$reset_all_pause_breaks (probe_info_ptr); 118 119 if probe_info.return_method = RETURN_TO_BREAK then do; 120 /* KLUDGE, but probably the best we can do */ 121 signal condition (command_abort_); 122 /* this should get us back to the command processor... */ 123 call probe_error_$malfunction 124 /* if we ever get returned to, what else should we do?? */ 125 (probe_info_ptr, 0, "Unable to quit after a breakpoint."); 126 return; 127 end; 128 129 probe_info.return_method = RETURN_TO_CALLER; 130 /* this will make us just return to whoever called probe */ 131 132 goto probe_info.abort_probe_label;/* abort the invocation of probe */ 133 end; 134 return; /* if not executing, just return */ 135 136 /* */ 137 138 goto_request: 139 entry (P_probe_info_ptr); 140 141 /* * Goto a particular label */ 142 143 goto_request_block: 144 begin; 145 146 dcl line_type fixed bin; 147 /* what data type probe_get_line found for us */ 148 dcl 1 label_overlay aligned based (addr (label_variable)), 149 2 place pointer, 150 2 frame pointer; 151 dcl label_variable label variable aligned; 152 153 dcl 1 map_array (map_size) based (map_ptr) aligned 154 like statement_map; 155 dcl map_size fixed bin; 156 dcl map_ptr ptr ptr; 157 158 probe_info_ptr = P_probe_info_ptr; 159 160 call require_argument (); /* must have a following argument -- */ 161 /* goto would otherwise goto $c */ 162 163 call probe_get_$line (probe_info_ptr, addr (new_source_info), (0), 164 "0001"b, line_type, code); 165 if code ^= 0 166 then goto SOME_ERROR; /* we lost getting the label */ 167 if (line_type = ext_procedure_runtime_dtype | 168 line_type = ext_entry_runtime_dtype | 169 line_type = int_entry_runtime_dtype) 170 then 171 call probe_error_ (probe_info_ptr, 0, "Can't goto a procedure"); 172 173 call reject_argument (); /* and can't have any args after the label */ 174 175 if probe_info.execute then do; 176 map_ptr = new_source_info.seg_info_ptr -> seg_info.statement_map_ptr; 177 map_size = new_source_info.seg_info_ptr -> seg_info.map_size; 178 label_overlay.place = 179 pointer (map_ptr, 180 map_array (new_source_info.stmnt_map_entry_index).location); 181 label_overlay.frame = new_source_info.stack_ptr; 182 /* and stack frame */ 183 if label_overlay.frame = null 184 then /* check if procedure active */ 185 call probe_error_ (probe_info_ptr, probe_et_$bad_label_frame); 186 187 if probe_break_mgr_$is_temporary_break (probe_info_ptr, 188 probe_info.ptr_to_current_source) then do; 189 /* if a temporary break (set by step), reset it */ 190 call probe_break_mgr_$reset_break_at_line (probe_info_ptr, 191 probe_info.ptr_to_current_source, 192 BREAK_BEFORE, "0"b, (0)); 193 call probe_break_mgr_$reset_break_at_line (probe_info_ptr, 194 probe_info.ptr_to_current_source, 195 BREAK_AFTER, "0"b, (0)); 196 end; 197 198 goto label_variable; /* cleanup will occur ! */ 199 end; 200 end goto_request_block; 201 goto MAIN_RETURN; /* end of code for goto request */ 202 203 /* */ 204 205 step_request: 206 entry (P_probe_info_ptr); 207 208 /* * This request sets a breakpoint immediately "before" the next statement, 209* * and then continues execution. It's not as useful as it might seem, of 210* * course, since there's no guarantee that the next statement will be 211* * executed, anyway, but life's like that. Perhaps when we get the step 212* * operator implemented things will work better. This code shares some 213* * temporaries with the goto request, above. */ 214 215 dcl STEP_COMMAND_LIST char (5) internal static options (constant) 216 init ("pause"); 217 dcl probe_source_segment_$position_source 218 entry (ptr, ptr, fixed bin, fixed bin (35)); 219 220 probe_info_ptr = P_probe_info_ptr; 221 222 call reject_argument (); /* can't say 'step foo', of course */ 223 224 if probe_info.execute then do; 225 if probe_info.return_method ^= RETURN_TO_BREAK 226 & probe_info.return_method ^= RETURN_TO_CONDITION 227 then 228 call probe_error_ (probe_info_ptr, 0, 229 "The ""step"" request may only be used at a breakpoint or after a fault." 230 ); 231 232 new_source_info = initial_source; /* copy it, for we change the statement number */ 233 234 call probe_source_segment_$position_source (probe_info_ptr, 235 addr (new_source_info), 1, code); 236 if code ^= 0 237 then goto SOME_ERROR; 238 239 call probe_break_mgr_$set_break (probe_info_ptr, addr (new_source_info), 240 BREAK_BEFORE, 241 addr (STEP_COMMAND_LIST), length (STEP_COMMAND_LIST), code); 242 if code ^= 0 243 then goto SOME_ERROR; 244 245 goto probe_info.abort_probe_label;/* leave and restart */ 246 end; 247 return; /* end of code for continue request */ 248 249 /* */ 250 251 continue_to_request: 252 entry (P_probe_info_ptr); 253 254 /* * This request sets a break at the specified label and continues execution until 255* * that point. This code shares various temporaries with the goto and step requests, above */ 256 257 probe_info_ptr = P_probe_info_ptr; 258 259 call require_argument (); /* must have a label */ 260 261 call probe_get_$line (probe_info_ptr, addr (new_source_info), (0), "0001"b, 262 (0), code); 263 if code ^= 0 264 then go to SOME_ERROR; 265 266 call reject_argument (); /* must be no args after the label, of course */ 267 268 if probe_info.execute then do; /* if for real, then set the break and resume execution */ 269 if probe_info.return_method ^= RETURN_TO_BREAK 270 & probe_info.return_method ^= RETURN_TO_CONDITION 271 then 272 call probe_error_ (probe_info_ptr, 0, 273 "The ""continue_to"" request may only be used at a breakpoint or after a fault." 274 ); 275 276 call probe_break_mgr_$set_break (probe_info_ptr, addr (new_source_info), 277 BREAK_BEFORE, 278 addr (STEP_COMMAND_LIST), length (STEP_COMMAND_LIST), code); 279 if code ^= 0 280 then goto SOME_ERROR; 281 282 CONTINUE: 283 if probe_modes.meter then do; /* so user doesn't see probe's own usage */ 284 probe_static_info.last_clock = clock (); 285 probe_static_info.last_vclock = vclock (); 286 call cpu_time_and_paging_ (probe_static_info.last_page_faults, 0, 0) 287 ; 288 end; 289 290 probe_static_info.last_break_segno = "0"b; 291 292 goto probe_info.abort_probe_label;/* leave probe */ 293 end; 294 return; /* end of code for continue_to request */ 295 296 /* */ 297 298 continue_request: 299 entry (P_probe_info_ptr); 300 301 /* * This simply continues execution of the user program. It takes no arguments */ 302 303 probe_info_ptr = P_probe_info_ptr; 304 305 call reject_argument (); /* no arguments for continue */ 306 307 if probe_info.execute then do; /* should we do it at all? */ 308 if probe_info.return_method ^= RETURN_TO_BREAK 309 & probe_info.return_method ^= RETURN_TO_CONDITION 310 then 311 call probe_error_ (probe_info_ptr, 0, 312 "The ""continue"" request may only be used to continue from a fault or a breakpoint." 313 ); 314 315 goto CONTINUE; /* no longer set "RETURN_TO_CALLER" -- wos 7/15/79 */ 316 end; 317 return; /* return if we're not executing */ 318 319 /* */ 320 321 halt_request: 322 entry (P_probe_info_ptr); 323 324 /* * This is used in breakpoints to cause probe to come up to a new listener level. 325* * It just calls probe_listen_ recursively, which saves the old values so the breakpoint 326* * can later be resumed. */ 327 328 probe_info_ptr = P_probe_info_ptr; 329 330 call reject_argument (); /* no arguments for halt */ 331 332 call iox_$control (probe_info.output_switch, "start", null, 0); 333 /* prevent wakeups from being lost by prev requests in breaklist */ 334 335 if probe_info.execute then do; /* call ourselves */ 336 if probe_info.break_slot_ptr = null () /* but only if this is a break */ 337 | probe_info.in_listener 338 then /* and we haven't called the listener yet */ 339 call probe_error_ (probe_info_ptr, 0, 340 "The ""halt"" request may only be issued in a breakpoint request list." 341 ); 342 343 if probe_modes.meter then do; 344 old_clock = probe_static_info.last_clock; 345 old_vclock = probe_static_info.last_vclock; 346 old_page_faults = probe_static_info.last_page_faults; 347 new_clock, probe_static_info.last_clock = clock (); 348 new_vclock, probe_static_info.last_vclock = vclock (); 349 call cpu_time_and_paging_ (new_page_faults, 0, 0); 350 probe_static_info.last_page_faults = new_page_faults; 351 end; 352 353 call probe_announce_entry_ (probe_info_ptr); 354 /* let user know what's happening */ 355 356 if probe_modes.meter then do; /* print clock, vcpu, and page faults since last halt */ 357 real_seconds = divide (new_clock - old_clock, 1000000, 17, 0); 358 real_minutes = divide (real_seconds, 60, 17, 0); 359 real_seconds = real_seconds - real_minutes * 60; 360 virtual_usec = new_vclock - old_vclock; 361 virtual_msec = divide (virtual_usec, 1000, 17, 0); 362 virtual_10ksec = 363 divide (virtual_usec - virtual_msec * 1000, 100, 17, 0); 364 page_faults = new_page_faults - old_page_faults; 365 366 if probe_static_info.brief_sw 367 then call ioa_$ioa_switch (probe_info.output_switch, 368 "^7t^d.^d MSEC", virtual_msec, virtual_10ksec); 369 370 else call ioa_$ioa_switch (probe_info.output_switch, 371 "^3xTime = ^[^d min ^]^d sec, Vcpu = .^d^d sec, Page faults = ^d", 372 real_minutes ^= 0, real_minutes, real_seconds, 373 virtual_msec, virtual_10ksec, page_faults); 374 end; 375 376 call probe_listen_ (probe_info_ptr, code); 377 /* and let him type commands */ 378 end; 379 380 return; /* end of code for halt request */ 381 382 /* */ 383 384 pause_request: 385 entry (P_probe_info_ptr); 386 387 /* * The pause request works just like the halt request, except that it causes the 388* * most recent breakpoint to be reset, if there was one, thus halting the program 389* * but once. */ 390 391 probe_info_ptr = P_probe_info_ptr; 392 393 call reject_argument (); /* pause takes no arguments */ 394 395 call iox_$control (probe_info.output_switch, "start", null, 0); 396 /* prevent wakeups from being lost by prev requests in breaklist */ 397 398 if probe_info.execute then do; 399 if probe_info.break_slot_ptr = null () /* but only if this is a break */ 400 | probe_info.in_listener 401 then /* and we haven't called the listener yet */ 402 call probe_error_ (probe_info_ptr, 0, 403 "The ""pause"" request may only be issued in a breakpoint request list." 404 ); 405 406 call probe_announce_entry_ (probe_info_ptr); 407 /* let user know what's happening */ 408 409 call probe_listen_ (probe_info_ptr, code); 410 /* and let him type commands */ 411 412 if probe_info.break_slot_ptr ^= null () then do; 413 /* upon return, reset the break which got us here */ 414 call probe_break_mgr_$reset_break_at_line (probe_info_ptr, 415 addr (initial_source), 416 probe_info.break_slot_ptr -> break_slot.type, "0"b, code); 417 if code ^= 0 & code ^= probe_et_$breakless 418 then goto SOME_ERROR; 419 end; 420 end; 421 return; /* end of code for pause request */ 422 423 /* */ 424 425 /* INTERNAL PROCEDURES */ 426 427 reject_argument: 428 proc (); 429 430 /* * This procedure simply calls probe_error_ if the current token is not the 431* * end of the token chain -- it is called by requests which have processed all 432* * expected arguments and want to barf if there are any extras */ 433 434 if probe_info.ct -> token.type < probe_info.end_token 435 then 436 call probe_error_ (probe_info_ptr, probe_et_$too_many_args); 437 return; 438 end; /* reject_argument internal procedure */ 439 440 require_argument: 441 proc (); 442 443 /* * This is just like reject_argument, except that it barfs if there are not 444* * any more arguments */ 445 if probe_info.ct -> token.type >= probe_info.end_token 446 then 447 call probe_error_ (probe_info_ptr, probe_et_$noarg); 448 return; 449 end; /* require_argument internal procedure */ 450 451 /* */ 452 1 1 /* BEGIN INCLUDE FILE probe_info.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-10-24,WAAnderson), approve(88-10-24,MCR7952), 1 7* audit(88-10-24,RWaters), install(88-10-27,MR12.2-1194): 1 8* Added field 'retry_using_main' to add new C feature. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Created: 04/22/79 W. Olin Sibert, from subsystem_info 1 13* Modified: 22 Sept 79 JRd to remove: default (ptr & (auto|based)) init (null ()); 1 14* Added flags.setting_break 08/22/83 Steve Herbst 1 15* Added flags.executing_quit_request 01/15/85 Steve Herbst 1 16**/ 1 17 1 18 dcl 1 probe_info aligned based (probe_info_ptr), /* standard data for a probe invocation */ 1 19 2 probe_info_version fixed bin, /* version of this structure */ 1 20 1 21 2 static_info_ptr pointer unaligned, /* pointer to static information structure */ 1 22 2 modes_ptr pointer unaligned, /* pointer to probe_modes structure */ 1 23 1 24 2 ptr_to_current_source ptr, /* current_source is based on this */ 1 25 2 ptr_to_initial_source ptr, /* initial_source is based on this */ 1 26 2 machine_cond_ptr pointer, /* pointer to machine conditions, if we faulted to get here */ 1 27 1 28 2 token_info aligned, /* information about token chain currently being processed */ 1 29 3 first_token pointer unaligned, /* first token in chain */ 1 30 3 ct pointer unaligned, /* pointer to current token; updated in MANY places */ 1 31 3 end_token bit (18) aligned, /* token type at which to stop scanning token chain */ 1 32 3 buffer_ptr pointer unaligned, /* pointer to input buffer */ 1 33 3 buffer_lth fixed bin (21), /* and length */ 1 34 1 35 2 random_info aligned, 1 36 3 current_stack_frame pointer unaligned, /* stack frame pointer for frame in which probe was invoked */ 1 37 3 input_type fixed bin, /* current input type */ 1 38 3 language_type fixed bin, /* current language being processed */ 1 39 3 return_method fixed bin, /* how we should return after exiting probe */ 1 40 3 entry_method fixed bin, /* how we got here in the first place */ 1 41 3 pad1 (19) bit (36) aligned, 1 42 1 43 2 break_info, /* break info -- only interesting if we got here via a break */ 1 44 3 break_slot_ptr pointer, /* pointer to break slot -- non-null IFF at a break */ 1 45 3 last_break_slot_ptr pointer unaligned, /* pointer to previous break slot, not presently used */ 1 46 3 break_reset bit (1) aligned, /* this break has been reset by somebody further on */ 1 47 3 real_break_return_loc pointer, /* where to REALLY return to, modulo previous bit */ 1 48 1 49 2 probe_area_info, /* information about various probe areas */ 1 50 3 break_segment_ptr pointer unaligned, /* pointer to Personid.probe */ 1 51 3 break_area_ptr pointer unaligned, /* pointer to area in break segment */ 1 52 3 scratch_area_ptr pointer unaligned, /* pointer to probe scratch seg in process dir */ 1 53 3 probe_area_ptr pointer unaligned, /* This area lasts as long as an invocation of probe. */ 1 54 3 work_area_ptr pointer unaligned, /* This area lasts as long as the current request line */ 1 55 3 expression_area_ptr pointer unaligned, /* This area lasts as long as the current command */ 1 56 1 57 2 flags aligned, /* this, in particular, should be saved and restored correctly */ 1 58 (3 execute, /* "1"b => execute requests, "0"b => just check syntax */ 1 59 3 in_listener, /* ON => in probe listener loop */ 1 60 3 executing_request, /* ON => executing a request */ 1 61 3 in_interpret_line, /* executing in probe_listen_$interpret_line */ 1 62 3 setting_break, /* executing "after" or "before": check syntax of "if" */ 1 63 3 executing_quit_request, /* to prevent error looping during "quit" request */ 1 64 3 pad (30)) bit (1) unaligned, 1 65 1 66 2 io_switches, /* switches probe will do normal I/O on */ 1 67 3 input_switch pointer, 1 68 3 output_switch pointer, 1 69 1 70 2 error_info, /* information about the last error saved for later printing */ 1 71 3 error_code fixed bin (35), 1 72 3 error_message char (300) varying, 1 73 1 74 2 listener_info, /* internal use by probe listener */ 1 75 3 request_name character (32) varying, /* primary name of the request being processed */ 1 76 3 abort_probe_label label variable, 1 77 3 abort_line_label label variable, 1 78 3 depth fixed binary, /* count of active invocations of probe */ 1 79 3 previous pointer unaligned, /* -> previous invocation's info */ 1 80 3 next pointer unaligned, 1 81 1 82 2 end_of_probe_info pointer aligned, 1 83 2 retry_using_main fixed bin aligned; 1 84 1 85 1 86 dcl probe_info_ptr pointer; 1 87 1 88 dcl probe_info_version fixed bin static options (constant) initial (1); 1 89 1 90 dcl probe_info_version_1 fixed bin static options (constant) initial (1); 1 91 1 92 dcl scratch_area area based (probe_info.scratch_area_ptr); 1 93 dcl probe_area area based (probe_info.probe_area_ptr); 1 94 dcl work_area area based (probe_info.work_area_ptr); 1 95 dcl expression_area area based (probe_info.expression_area_ptr); 1 96 1 97 /* END INCLUDE FILE probe_info.incl.pl1 */ 453 2 1 /* BEGIN INCLUDE FILE probe_static_info.incl.pl1 */ 2 2 2 3 /* * This include file describes per-process information about probe, such 2 4* * as various options available and the info directories and modes. 2 5* * 2 6* * Created: 06/06/79 W. Olin Sibert */ 2 7 2 8 dcl 1 probe_static_info aligned based (probe_info.static_info_ptr), /* per-process data about probe */ 2 9 2 probe_info_version fixed bin, /* same as probe_info.probe_info_version */ 2 10 2 11 2 version aligned, 2 12 3 major_version fixed bin, 2 13 3 minor_version fixed bin, 2 14 3 version_string char (32) unaligned, /* like "4.3f, patch 1" */ 2 15 2 16 2 name char (32) unaligned, /* "probe" */ 2 17 2 prompt character (40) varying, /* prompt for reading requests */ 2 18 2 switches, 2 19 3 brief_sw bit (1) unaligned, /* briefer break messages, no header (default OFF) */ 2 20 3 no_handle_faults_sw bit (1) unaligned, /* don't handle bad ptr faults (default OFF) */ 2 21 3 recursive_breaks_sw bit (1) unaligned, /* don't ignore recursive breaks in probe */ 2 22 3 prompt_on_sw bit (1) unaligned, /* prompt for request lines */ 2 23 3 switch_pad bit (32) unaligned, 2 24 2 25 2 scratch_segment_ptr pointer, /* pointer to probe_scratch_ -- always valid */ 2 26 2 break_segment_ptr pointer, /* pointer to Person.breaks -- valid only if needed */ 2 27 2 28 2 seg_info_offset_ptr pointer, /* pointer to seg_info_offset array */ 2 29 2 30 2 probe_segno bit (18), /* segment number of probe itself */ 2 31 2 last_break_segno bit (18), /* segment number of last interrupted program */ 2 32 2 33 2 stack_info aligned, /* information about the stack trace in probe_scratch_ */ 2 34 3 level_chain pointer unaligned, /* first level frame entry pointer */ 2 35 3 max_level fixed bin, /* number of stack levels */ 2 36 3 flags aligned, 2 37 (4 good_stack, 2 38 4 traced_with_all, /* whether the stack trace includes support frames */ 2 39 4 pad1 (34)) bit (1) unaligned, 2 40 2 41 2 modes_ptr pointer unaligned, /* pointer to modes -- same as probe_info.modes_ptr */ 2 42 2 43 2 request_table_info aligned, /* info for request definitions */ 2 44 3 array_ptr pointer, /* pointer to array of request table pointers */ 2 45 3 array_size fixed bin, /* number of elements in use */ 2 46 3 array_max_size fixed bin, /* max number of elements in array */ 2 47 3 using_internal_array bit (1) aligned, /* whether or not we are using the array in probe_static_info */ 2 48 2 49 2 io_switches, /* switches probe does its I/O on */ 2 50 3 input_switch pointer, 2 51 3 output_switch pointer, 2 52 3 (private_input_sw, private_output_sw) bit (1) aligned, 2 53 /* created by ids, ods and should be destroyed */ 2 54 2 55 2 info_directory_info aligned, /* info about info directories */ 2 56 3 array_ptr pointer, 2 57 3 array_size fixed bin, 2 58 3 array_max_size fixed bin, 2 59 3 using_internal_array bit (1) aligned, 2 60 2 61 2 exclude_name_info aligned, /* info for exclude array used in printing values */ 2 62 3 array_ptr pointer, 2 63 3 array_size fixed bin, 2 64 3 array_max_size fixed bin, 2 65 3 using_internal_array bit (1) aligned, 2 66 2 67 2 null_seg_info_ptr pointer unaligned, /* pointer to the "null" seg_info block */ 2 68 2 69 2 initial_arrays, /* initial versions of various arrays */ 2 70 3 request_table_ptr_array (10) pointer aligned, 2 71 3 info_directory_name_array (3) char (168) unaligned, 2 72 3 exclude_name_array (6) char (32) unaligned, 2 73 2 74 2 metering_info, /* last values for "mode meter" */ 2 75 3 last_clock fixed bin (71), 2 76 3 last_vclock fixed bin (71), 2 77 3 last_page_faults fixed bin, 2 78 2 79 2 end_of_probe_static_info fixed bin; 2 80 2 81 2 82 dcl 1 probe_seg_info_array aligned based (probe_static_info.seg_info_offset_ptr), 2 83 2 count fixed bin, /* number of entries in seg_info_offset array */ 2 84 2 seg_info_offset (0 : seg_info_offset_count refer (probe_seg_info_array.count)) bit (18) aligned; 2 85 2 86 dcl seg_info_offset_count fixed bin; /* one less than the number of info_offsets */ 2 87 2 88 dcl probe_request_tables (probe_static_info.request_table_info.array_max_size) /* array of request table pointers */ 2 89 pointer aligned based (probe_static_info.request_table_info.array_ptr); 2 90 2 91 dcl probe_info_directories (probe_static_info.info_directory_info.array_max_size) /* array of info directories */ 2 92 char (168) unaligned based (probe_static_info.info_directory_info.array_ptr); 2 93 2 94 dcl probe_exclude_names (probe_static_info.exclude_name_info.array_max_size) /* array of exclude names */ 2 95 char (168) unaligned based (probe_static_info.exclude_name_info.array_ptr); 2 96 2 97 /* END INCLUDE FILE probe_static_info.incl.pl1 */ 454 3 1 /* BEGIN INCLUDE FILE ... probe_modes.incl.pl1 3 2* 3 3* this structure is part of the per-user data base, which alledgedly is 3 4* kept in person_id.probe no probe code other than probe_modes_mgr_ 3 5* should set these modes, or refer to them BY NAME in communication 3 6* with the user I do not even promise a one-to-one correspondance 3 7* between the modes the user can set and the names here 3 8* 3 9* James R. Davis 12 July 79 */ 3 10 /* Added meter 09/23/82 S. Herbst */ 3 11 /* Added truncate_strings 05/21/84 S. Herbst */ 3 12 3 13 3 14 dcl 1 probe_modes aligned based (probe_info.modes_ptr), 3 15 2 len_modes, 3 16 3 error_messages fixed bin, /* for use by probe_error_ */ 3 17 3 qualification fixed bin, /* for use by probe_print_value_ */ 3 18 3 value_print fixed bin, /* for probe_print_value_ */ 3 19 3 pad (5) fixed bin, /* for use by probe_mxyzptlk */ 3 20 2 value_separator char (32) varying, 3 21 2 bits, 3 22 3 use_exclude_names bit (1) unal, 3 23 3 debug_modes_set bit (1) unaligned, /* whether any of the *MAGIC* modes are set */ 3 24 3 ignore_faults bit (1) unaligned, 3 25 3 octal_bitstrings bit (1) unal, /* for Olin Sibert */ 3 26 3 catch_errors bit (1) unaligned, /* calls to probe_error_ will call cu_$cl */ 3 27 3 catch_error_once bit (1) unaligned, /* next call to probe_error_ will call cu_$cl */ 3 28 3 debug_breaks bit (1) unaligned, /* causes various things to happen at breakpoints */ 3 29 3 use_prompt bit (1) unaligned, /* whether to use the prompt */ 3 30 3 debug bit (1) unaligned, /* controls printing of random debugging information */ 3 31 3 meter bit (1) unaligned, /* controls printing of time, vcpu, pf's at halt */ 3 32 3 truncate_strings bit (1) unaligned, /* controls value req printing only 1st 200 chars/bits */ 3 33 3 pad bit (25) unaligned; 3 34 3 35 dcl (BRIEF_mode_type init (1), 3 36 SHORT_mode_type init (2), 3 37 LONG_mode_type init (3)) fixed bin internal static options (constant); 3 38 3 39 /* END INCLUDE FILE ... probe_modes.incl.pl1 */ 3 40 455 4 1 /* BEGIN INCLUDE FILE probe_tokens.incl.pl1 */ 4 2 /* Split up into probe_tokens and probe_references, 04/22/79 WOS */ 4 3 4 4 dcl 1 token_header aligned based, /* header information common to all tokens */ 4 5 2 next pointer unaligned, /* pointer to next token in chain */ 4 6 2 prev pointer unaligned, /* same for previous token */ 4 7 2 type bit (18) aligned, 4 8 2 buffer_ptr pointer unaligned, /* pointer to beginning of input buffer */ 4 9 2 location fixed bin (17) unal, /* offset in input buffer */ 4 10 2 length fixed bin (17) unal, 4 11 2 flags aligned, 4 12 (3 leading_whitespace, /* there is whitespace before thios token */ 4 13 3 trailing_whitespace) bit (1) unaligned, /* and same for after */ 4 14 3 pad1 bit (34) unaligned; 4 15 4 16 dcl 1 token aligned based, /* produced by scan_probe_input_ */ 4 17 2 header aligned like token_header; /* that's all there is */ 4 18 4 19 dcl 1 identifier aligned based, /* keyword or identifier token */ 4 20 2 header aligned like token_header, 4 21 2 length fixed bin, /* length of name */ 4 22 2 name pointer unaligned; /* to string in buffer containing name */ 4 23 4 24 dcl 1 operator aligned based, /* for punctuation */ 4 25 2 header aligned like token_header; /* nothing but a header here */ 4 26 4 27 dcl 1 constant aligned based, /* for strings pointers numbers etc */ 4 28 2 header aligned like token_header, 4 29 2 encoded_precision aligned, /* encoded precision kludge for assign_ */ 4 30 3 scale fixed bin (17) unaligned, /* arithmetic scale */ 4 31 3 precision fixed bin (17) unaligned, /* arithmetic precision or other size */ 4 32 2 scale_and_precision fixed bin (35), /* An identical copy of the two values above */ 4 33 2 data_type fixed bin, /* standard data type code + packed bit */ 4 34 2 data_ptr pointer unaligned; 4 35 4 36 4 37 dcl (OPERATOR_TYPE init ("100"b), /* types for above */ 4 38 NAME_TYPE init ("010"b), 4 39 CONSTANT_TYPE init ("001"b)) bit (18) internal static options (constant); 4 40 4 41 4 42 dcl current_identifier_name /* Overlays for looking at the current tokens */ 4 43 char (probe_info.ct -> identifier.length) based (probe_info.ct -> identifier.name); 4 44 dcl 1 current_constant aligned like constant based (probe_info.ct); 4 45 dcl 1 current_token aligned like token based (probe_info.ct); 4 46 4 47 /* END INCLUDE FILE probe_tokens.incl.pl1 */ 456 5 1 /* BEGIN INCLUDE FILE probe_references.incl.pl1 */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 5 5* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 5 6* Added new field (c_symbol) for C-Probe support. 5 7* 2) change(88-10-28,WAAnderson), approve(88-10-28,MCR7952), 5 8* audit(88-10-31,RWaters), install(88-11-11,MR12.2-1210): 5 9* Added new field (c_sub_c_ptr) for C-Probe_support. 5 10* END HISTORY COMMENTS */ 5 11 5 12 /* Split out of probe_tokens, 04/22/79 WOS */ 5 13 /* modified for probe variables Feb 19 80 JRD */ 5 14 /* Modified June 83 JMAthane to add "type_ptr" and "builtin" fields */ 5 15 5 16 dcl 1 reference_node aligned based, /* information about a reference */ 5 17 2 symbol_ptr pointer aligned, /* to symbol table entry for reference */ 5 18 2 type_ptr pointer aligned, /* to symbol table entry for type (null if none) */ 5 19 2 address_ptr pointer aligned, /* to location of variable */ 5 20 2 base_addr pointer aligned, /* pointer on which whole symbol is based */ 5 21 2 source_info_ptr pointer aligned, /* to symbol structure for reference */ 5 22 5 23 2 name char (256) unaligned varying, /* symbol name */ 5 24 5 25 2 type fixed bin (35), /* data type */ 5 26 2 descriptor fixed bin (35), /* type || packed */ 5 27 2 precision fixed bin (35), /* scale and precision */ 5 28 2 flags, 5 29 3 packed bit (1) unal, /* data is in packed format */ 5 30 3 constant bit (1) unal, /* data is really a constant */ 5 31 3 cross_section bit (1) unal, /* reference is an array cross-section */ 5 32 3 function bit (1) unal, /* reference is function value */ 5 33 3 octal bit (1) unal, /* indicates that this is the octal bif */ 5 34 3 star_extent bit (1) unal, /* reference is a star subscript for father */ 5 35 3 have_generation bit (1) unal, /* this reference has an explicitly specified generation */ 5 36 3 pseudo_var bit (1) unal, /* it is ok to assign to it */ 5 37 3 probe_variable bit (1) unal, 5 38 3 path bit (1) unal, /* it's a pathname/virtual entry */ 5 39 3 builtin bit (1) unal, /* probe builtinvalue */ 5 40 3 c_ptr_to_char bit (1) unal, 5 41 3 c_sub_c_ptr bit (1) unal, 5 42 3 pad2 bit (23) unal, 5 43 5 44 2 optional_info, /* information which may or may not be present */ 5 45 3 argument_list pointer unaligned, /* pointer to reference_arg_list */ 5 46 3 subscript_ptr pointer unaligned, /* pointer to reference_subscripts */ 5 47 3 n_arguments fixed bin, /* number of arguments in argument list */ 5 48 3 n_subscripts fixed bin, /* number of subscripts present */ 5 49 5 50 2 constant_token_ptr pointer unaligned, /* pointer to constant token if this is a constant */ 5 51 2 subscript_refs_ptr pointer unaligned, /* pointer to array of subscript reference node pointers */ 5 52 2 invocation_level fixed bin, /* invocation level number ("[-17]") for this reference */ 5 53 2 probe_var_info_ptr ptr unal, /* only if flags.probe_variable */ 5 54 2 c_symbol_ptr ptr unal, 5 55 2 pad1 (9) pointer unaligned, 5 56 2 end_of_reference_node pointer aligned; 5 57 5 58 5 59 dcl 1 reference_arg_list aligned based, /* argument list; based on reference.argument_list */ 5 60 2 number fixed bin, /* number of arguments actually present */ 5 61 2 node (16) pointer aligned; /* reference node pointers for each argument */ 5 62 5 63 5 64 dcl 1 reference_subscripts aligned based, /* subscript array; based on reference.subscript_ptr */ 5 65 2 number fixed bin, /* number actually present */ 5 66 2 value (2, 16) fixed bin (24); /* values for lower and upper bound for each */ 5 67 5 68 5 69 dcl 1 subscript_reference_ptrs aligned based, /* array of pointers to subscript reference nodes */ 5 70 2 ptr (2, 16) pointer aligned; 5 71 5 72 /* END INCLUDE FILE probe_references.incl.pl1 */ 457 6 1 /* BEGIN INCLUDE FILE ... probe_source_info.incl.pl1 6 2* 6 3* James R. Davis 2 July 79 */ 6 4 6 5 dcl 1 source_info based aligned, 6 6 2 stmnt_map_entry_index fixed bin, /* index in stmnt map for this stmnt */ 6 7 2 instruction_ptr ptr, /* to last instruction executed */ 6 8 2 block_ptr ptr, /* to runtime_block node */ 6 9 2 stack_ptr ptr, /* to a stack frame */ 6 10 2 entry_ptr ptr, /* to entry seq. for this proc */ 6 11 2 seg_info_ptr ptr; /* to seg_info */ 6 12 6 13 dcl 1 current_source aligned like source_info based (probe_info.ptr_to_current_source); 6 14 dcl 1 initial_source aligned like source_info based (probe_info.ptr_to_initial_source); 6 15 6 16 /* END INCLUDE FILE ... probe_source_info.incl.pl1 */ 458 7 1 /* BEGIN INCLUDE FILE ... probe_operators.incl.pl1 */ 7 2 7 3 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 7 7* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 7 8* Added new C operators. 7 9* END HISTORY COMMENTS */ 7 10 7 11 7 12 /* These are the operator.types for each defined operator */ 7 13 /* Modified June 83 JMAthane for PASCAL_ARROW new operator */ 7 14 /* Added PASCAL_RANGE and PASCAL_ASSIGN 07/26/83 S. Herbst */ 7 15 /* Modified April 88 Hinatsu Addition of C types */ 7 16 7 17 dcl (PLUS init ("400001"b3), MINUS init ("400002"b3), 7 18 TIMES init ("400003"b3), SLASH init ("400004"b3), 7 19 OR_BAR init ("400005"b3), NOT_SIGN init ("400006"b3), 7 20 LESS_THAN init ("400007"b3), GREATER_THAN init ("400010"b3), 7 21 EQUALS init ("400011"b3), NOT_EQUALS init ("400012"b3), 7 22 NOT_GREATER_THAN init ("400013"b3), NOT_LESS_THAN init ("400014"b3), 7 23 PERIOD init ("400015"b3), COLON init ("400016"b3), 7 24 AMPERSAND init ("400017"b3), PERCENT init ("400020"b3), 7 25 DOLLAR_SIGN init ("400021"b3), LEFT_BRACKET init ("400022"b3), 7 26 RIGHT_BRACKET init ("400023"b3), ARROW init ("400024"b3), 7 27 COMMA init ("400025"b3), QUESTION_MARK init ("400026"b3), 7 28 PASCAL_ARROW init ("400027"b3), PASCAL_RANGE init ("400030"b3), 7 29 PASCAL_ASSIGN init ("400031"b3), 7 30 7 31 /* Additons to support C types */ 7 32 C_LEFT_SHIFT init ("400032"b3), C_RIGHT_SHIFT init ("400033"b3), 7 33 7 34 /* operator 28 are left for future expansion */ 7 35 7 36 LEFT_PAREN init ("400035"b3), RIGHT_PAREN init ("400036"b3), 7 37 C_EQUAL init ("400037"b3), C_NOT_EQUAL init ("400040"b3), 7 38 SEMI_COLON init ("400041"b3), NEW_LINE init ("400042"b3), 7 39 C_INDIRECTION init ("400034"b3) 7 40 7 41 ) bit (18) aligned internal static options (constant); 7 42 7 43 dcl OPERATOR_VALUES (0:34) char (4) varying internal static options (constant) init 7 44 ("????", "+", "-", "*", "/", "|", "^", "<", 7 45 ">", "=", "^=", "<=", ">=", ".", ":", "&", 7 46 "%", "$", "[", "]", "->", ",", "?", "^", 7 47 "..", ":=", "<<", ">>", "*", "(", ")", 7 48 "==", "!=", ";"," 7 49 "); 7 50 7 51 /* END INCLUDE FILE ... probe_operators.incl.pl1 */ 459 8 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 8 2 8 3 8 4 /****^ HISTORY COMMENTS: 8 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 8 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 8 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 8 8* Objects of this type are PASCAL string types. 8 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 8 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 8 11* Added the new C types. 8 12* END HISTORY COMMENTS */ 8 13 8 14 /* This include file defines mnemonic names for the Multics 8 15* standard descriptor types, using both pl1 and cobol terminology. 8 16* PG 780613 8 17* JRD 790530 8 18* JRD 791016 8 19* MBW 810731 8 20* TGO 830614 Add hex types. 8 21* Modified June 83 JMAthane to add PASCAL data types 8 22* TGO 840120 Add float dec extended and generic, float binary generic 8 23**/ 8 24 8 25 dcl (real_fix_bin_1_dtype init (1), 8 26 real_fix_bin_2_dtype init (2), 8 27 real_flt_bin_1_dtype init (3), 8 28 real_flt_bin_2_dtype init (4), 8 29 cplx_fix_bin_1_dtype init (5), 8 30 cplx_fix_bin_2_dtype init (6), 8 31 cplx_flt_bin_1_dtype init (7), 8 32 cplx_flt_bin_2_dtype init (8), 8 33 real_fix_dec_9bit_ls_dtype init (9), 8 34 real_flt_dec_9bit_dtype init (10), 8 35 cplx_fix_dec_9bit_ls_dtype init (11), 8 36 cplx_flt_dec_9bit_dtype init (12), 8 37 pointer_dtype init (13), 8 38 offset_dtype init (14), 8 39 label_dtype init (15), 8 40 entry_dtype init (16), 8 41 structure_dtype init (17), 8 42 area_dtype init (18), 8 43 bit_dtype init (19), 8 44 varying_bit_dtype init (20), 8 45 char_dtype init (21), 8 46 varying_char_dtype init (22), 8 47 file_dtype init (23), 8 48 real_fix_dec_9bit_ls_overp_dtype init (29), 8 49 real_fix_dec_9bit_ts_overp_dtype init (30), 8 50 real_fix_bin_1_uns_dtype init (33), 8 51 real_fix_bin_2_uns_dtype init (34), 8 52 real_fix_dec_9bit_uns_dtype init (35), 8 53 real_fix_dec_9bit_ts_dtype init (36), 8 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 8 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 8 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 8 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 8 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 8 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 8 60 real_flt_dec_4bit_bytealigned_dtype init (44), 8 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 8 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 8 63 real_flt_hex_1_dtype init (47), 8 64 real_flt_hex_2_dtype init (48), 8 65 cplx_flt_hex_1_dtype init (49), 8 66 cplx_flt_hex_2_dtype init (50), 8 67 c_typeref_dtype init (54), 8 68 c_enum_dtype init (55), 8 69 c_enum_const_dtype init (56), 8 70 c_union_dtype init (57), 8 71 algol68_straight_dtype init (59), 8 72 algol68_format_dtype init (60), 8 73 algol68_array_descriptor_dtype init (61), 8 74 algol68_union_dtype init (62), 8 75 8 76 cobol_comp_6_dtype init (1), 8 77 cobol_comp_7_dtype init (1), 8 78 cobol_display_ls_dtype init (9), 8 79 cobol_structure_dtype init (17), 8 80 cobol_char_string_dtype init (21), 8 81 cobol_display_ls_overp_dtype init (29), 8 82 cobol_display_ts_overp_dtype init (30), 8 83 cobol_display_uns_dtype init (35), 8 84 cobol_display_ts_dtype init (36), 8 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 8 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 8 87 cobol_comp_5_uns_dtype init (40), 8 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 8 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 8 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 8 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 8 92 cplx_flt_dec_generic_dtype init (84), 8 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 8 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 8 95 8 96 dcl (ft_integer_dtype init (1), 8 97 ft_real_dtype init (3), 8 98 ft_double_dtype init (4), 8 99 ft_complex_dtype init (7), 8 100 ft_complex_double_dtype init (8), 8 101 ft_external_dtype init (16), 8 102 ft_logical_dtype init (19), 8 103 ft_char_dtype init (21), 8 104 ft_hex_real_dtype init (47), 8 105 ft_hex_double_dtype init (48), 8 106 ft_hex_complex_dtype init (49), 8 107 ft_hex_complex_double_dtype init (50) 8 108 ) fixed bin internal static options (constant); 8 109 8 110 dcl (algol68_short_int_dtype init (1), 8 111 algol68_int_dtype init (1), 8 112 algol68_long_int_dtype init (2), 8 113 algol68_real_dtype init (3), 8 114 algol68_long_real_dtype init (4), 8 115 algol68_compl_dtype init (7), 8 116 algol68_long_compl_dtype init (8), 8 117 algol68_bits_dtype init (19), 8 118 algol68_bool_dtype init (19), 8 119 algol68_char_dtype init (21), 8 120 algol68_byte_dtype init (21), 8 121 algol68_struct_struct_char_dtype init (22), 8 122 algol68_struct_struct_bool_dtype init (20) 8 123 ) fixed bin internal static options (constant); 8 124 8 125 dcl (label_constant_runtime_dtype init (24), 8 126 int_entry_runtime_dtype init (25), 8 127 ext_entry_runtime_dtype init (26), 8 128 ext_procedure_runtime_dtype init (27), 8 129 picture_runtime_dtype init (63) 8 130 ) fixed bin internal static options (constant); 8 131 8 132 dcl (pascal_integer_dtype init (1), 8 133 pascal_real_dtype init (4), 8 134 pascal_label_dtype init (24), 8 135 pascal_internal_procedure_dtype init (25), 8 136 pascal_exportable_procedure_dtype init (26), 8 137 pascal_imported_procedure_dtype init (27), 8 138 pascal_typed_pointer_type_dtype init (64), 8 139 pascal_char_dtype init (65), 8 140 pascal_boolean_dtype init (66), 8 141 pascal_record_file_type_dtype init (67), 8 142 pascal_record_type_dtype init (68), 8 143 pascal_set_dtype init (69), 8 144 pascal_enumerated_type_dtype init (70), 8 145 pascal_enumerated_type_element_dtype init (71), 8 146 pascal_enumerated_type_instance_dtype init (72), 8 147 pascal_user_defined_type_dtype init (73), 8 148 pascal_user_defined_type_instance_dtype init (74), 8 149 pascal_text_file_dtype init (75), 8 150 pascal_procedure_type_dtype init (76), 8 151 pascal_variable_formal_parameter_dtype init (77), 8 152 pascal_value_formal_parameter_dtype init (78), 8 153 pascal_entry_formal_parameter_dtype init (79), 8 154 pascal_parameter_procedure_dtype init (80), 8 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 8 156 8 157 8 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 460 9 1 /* BEGIN INCLUDE FILE ... probe_seg_info.incl.pl1 9 2* 9 3* 25 June 79 JRDavis 9 4* 9 5* Modified 7 April 1983, TO - Add fields for character offset/line 9 6* correction per file. 9 7**/ 9 8 9 9 dcl 1 seg_info based aligned, /* place to remember information about object seg */ 9 10 2 language_type fixed bin, /* language of source program */ 9 11 2 bits aligned, 9 12 3 ignore_case bit (1) unal, 9 13 3 bound_segment bit (1) unaligned, 9 14 3 component bit (1) unaligned, 9 15 3 pad bit (33) unal, 9 16 2 names, /* where to find it */ 9 17 3 directory_name character (168) unal, /* what directory */ 9 18 3 entry_name character (32) unal, /* what segment */ 9 19 3 segname character (32) unal, /* procedure segname definition */ 9 20 2 identifier fixed bin (71), /* time of object creation */ 9 21 2 pointers, /* location of various parts of segment */ 9 22 3 symbol_header_ptr ptr unal, /* to symbol section */ 9 23 3 original_source_ptr ptr unal, /* to segment source map */ 9 24 3 statement_map_ptr ptr unal, /* to segment statement map */ 9 25 3 break_info ptr unal, /* for unbound segments, and start of chain for 9 26* bound ones, -> break_map !obsolete, I think! */ 9 27 3 chain ptr unal, /* to entry for next component if bound */ 9 28 3 linkage_ptr ptr unal, /* to linkage section */ 9 29 2 bounds aligned, /* structure of bounds information */ 9 30 3 text_bounds, 9 31 4 start fixed bin (35), 9 32 4 end fixed bin (35), 9 33 3 symbol_bounds, 9 34 4 start fixed bin (35), 9 35 4 end fixed bin (35), 9 36 2 map_size fixed bin, /* size of statement map */ 9 37 2 error_code fixed bin (35), /* errors encoutered while getting info, are recorded here */ 9 38 2 bound_create_time fixed bin (71), /* time seg containing was bound or compiled. */ 9 39 2 bound_sym_header ptr unal, /* to sym. section header for bound seg */ 9 40 2 pad (1) fixed bin (35), 9 41 9 42 2 nfiles fixed bin, 9 43 2 per_file (seg_info_nfiles refer (seg_info.nfiles)), 9 44 3 file_pointers ptr unal, 9 45 3 break_line (0:3) fixed bin (18) unsigned unaligned; 9 46 9 47 dcl seg_info_nfiles fixed bin; /* for allocation purposes */ 9 48 9 49 9 50 /* END INCLUDE FILE ... probe_seg_info.incl.pl1 */ 461 10 1 dcl 1 statement_map aligned based, 10 2 2 location bit(18) unaligned, 10 3 2 source_id unaligned, 10 4 3 file bit(8), 10 5 3 line bit(14), 10 6 3 statement bit(5), 10 7 2 source_info unaligned, 10 8 3 start bit(18), 10 9 3 length bit(9); 462 11 1 /* BEGIN INCLUDE FILE ... probe_break_slot.incl.pl1 11 2* 11 3* This is separate from probe_break_info.incl.pl1 because many programs 11 4* need to get at a break_slot, but don't deserve to see the rest of that information 11 5* 11 6**/ 11 7 11 8 dcl 1 break_slot based (bsp) aligned, /* describes (and handles) each probe break */ 11 9 2 item_type fixed bin, /* 0 -> break_slot type code */ 11 10 2 breakmap_header_offset bit (18) unal, /* to break map header, chain is not used */ 11 11 2 statement_item_offset bit (18) unal, 11 12 2 size fixed bin, /* number of words in the break_slot */ 11 13 2 sequence (0:7), /* "before" or "after" instructions to "trap" the break */ 11 14 3 offset bit (18) unaligned, /* address portion, some patched */ 11 15 3 skip bit (18) unaligned, /* op code portion */ 11 16 2 old_instruction bit (36) aligned, /* instruction that was replaced by break */ 11 17 2 symbol_block_offset bit (18) unal, /* for containing block */ 11 18 2 location bit (18) unal, /* offset of instruction that was replaced by break */ 11 19 2 type fixed bin, /* 0 -> after, 1 -> before */ 11 20 2 count fixed bin, /* number of characters in command list */ 11 21 2 command_list character (0 refer (break_slot.count)); /* command list associated with break */ 11 22 11 23 dcl bsp ptr; 11 24 11 25 dcl (BREAK_AFTER init (0), 11 26 BREAK_BEFORE init (1), 11 27 BREAK_AT init (2)) fixed bin internal static options (constant); 11 28 11 29 dcl PLACE (0:2) char (8) aligned internal static options (constant) init ("after", "before", "at"); 11 30 11 31 /* END INCLUDE FILE ... probe_break_slot.incl.pl1 */ 463 12 1 /* BEGIN INCLUDE FILE ... probe_lang_types.incl.pl1 12 2* 12 3* JRD 26 June 79 12 4* MBW 31 July 1981 to add algol68 */ 12 5 12 6 12 7 /****^ HISTORY COMMENTS: 12 8* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 12 9* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 12 10* Added C Language type. 12 11* END HISTORY COMMENTS */ 12 12 12 13 12 14 /* Modified June 83 JMAthane to add PASCAL language type */ 12 15 /* Modified April 88 Hinatsu to add C language type */ 12 16 12 17 dcl (UNKNOWN_lang_type init (1), 12 18 OTHER_lang_type init (2), 12 19 PL1_lang_type init (3), 12 20 FORTRAN_lang_type init (4), 12 21 COBOL_lang_type init (5), 12 22 ALM_lang_type init (6), 12 23 ALGOL68_lang_type init (7), 12 24 PASCAL_lang_type init (8), 12 25 C_lang_type init (9)) fixed bin internal static options (constant); 12 26 12 27 dcl official_language_names (9) char (32) internal static options (constant) init 12 28 ("Unknown", "other", "PL/I", "FORTRAN", "COBOL", "ALM", "Algol 68", "Pascal", "C"); 12 29 12 30 dcl palatable_language_names (9) char (32) internal static options (constant) init 12 31 ("Unknown", "Other", "pl1", "fortran", "cobol", "alm", "algol68", "pascal", "c"); 12 32 12 33 /* END INCLUDE FILE ... probe_lang_types.incl.pl1 */ 464 13 1 /* BEGIN INCLUDE FILE probe_info_constants.incl.pl1 */ 13 2 /* Created: 06/25/79 W. Olin Sibert */ 13 3 13 4 dcl (RETURN_TO_CALLER init (1), /* return methods */ 13 5 RETURN_TO_FRAME init (2), 13 6 RETURN_TO_CONDITION init (3), 13 7 RETURN_TO_BREAK init (4)) fixed bin internal static options (constant); 13 8 13 9 dcl (ENTRY_AT_CALL init (1), /* entered by a call to probe */ 13 10 ENTRY_AT_BREAK init (2), /* entered by a call to probe$break */ 13 11 ENTRY_AT_HALT init (3)) fixed bin internal static options (constant); /* entered by a call to probe$halt */ 13 12 13 13 dcl (CONSOLE_INPUT init (1), 13 14 BREAK_INPUT init (2), 13 15 MACRO_INPUT init (3)) fixed bin internal static options (constant); 13 16 13 17 /* END INCLUDE FILE probe_info_constants.incl.pl1 */ 465 466 467 end; /* external procedure probe_ctl_requests_ */ SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/88 1545.0 probe_ctl_requests_.pl1 >spec>install>MR12.2-1210>probe_ctl_requests_.pl1 453 1 10/27/88 1339.2 probe_info.incl.pl1 >ldd>include>probe_info.incl.pl1 454 2 11/12/82 1624.3 probe_static_info.incl.pl1 >ldd>include>probe_static_info.incl.pl1 455 3 12/04/84 2012.2 probe_modes.incl.pl1 >ldd>include>probe_modes.incl.pl1 456 4 11/26/79 1320.6 probe_tokens.incl.pl1 >ldd>include>probe_tokens.incl.pl1 457 5 11/11/88 1543.8 probe_references.incl.pl1 >spec>install>MR12.2-1210>probe_references.incl.pl1 458 6 11/26/79 1320.6 probe_source_info.incl.pl1 >ldd>include>probe_source_info.incl.pl1 459 7 10/26/88 1255.5 probe_operators.incl.pl1 >ldd>include>probe_operators.incl.pl1 460 8 10/26/88 1255.5 std_descriptor_types.incl.pl1 >ldd>include>std_descriptor_types.incl.pl1 461 9 11/02/83 1845.0 probe_seg_info.incl.pl1 >ldd>include>probe_seg_info.incl.pl1 462 10 05/06/74 1751.6 statement_map.incl.pl1 >ldd>include>statement_map.incl.pl1 463 11 07/15/80 1728.8 probe_break_slot.incl.pl1 >ldd>include>probe_break_slot.incl.pl1 464 12 10/26/88 1255.5 probe_lang_types.incl.pl1 >ldd>include>probe_lang_types.incl.pl1 465 13 11/26/79 1320.9 probe_info_constants.incl.pl1 >ldd>include>probe_info_constants.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. BREAK_AFTER 000020 constant fixed bin(17,0) initial dcl 11-25 set ref 193* BREAK_BEFORE 000023 constant fixed bin(17,0) initial dcl 11-25 set ref 190* 239* 276* P_probe_info_ptr parameter pointer dcl 49 ref 103 108 138 158 205 220 251 257 298 303 321 328 384 391 RETURN_TO_BREAK constant fixed bin(17,0) initial dcl 13-4 ref 119 225 269 308 RETURN_TO_CALLER constant fixed bin(17,0) initial dcl 13-4 ref 129 RETURN_TO_CONDITION constant fixed bin(17,0) initial dcl 13-4 ref 225 269 308 STEP_COMMAND_LIST 000000 constant char(5) initial packed unaligned dcl 215 set ref 239 239 239 239 276 276 276 276 abort_probe_label 222 based label variable level 3 dcl 1-18 ref 132 245 292 addr builtin function dcl 92 ref 163 163 178 181 183 234 234 239 239 239 239 261 261 276 276 276 276 414 414 bits 21 based structure level 2 dcl 3-14 break_info 50 based structure level 2 dcl 1-18 break_slot based structure level 1 dcl 11-8 break_slot_ptr 50 based pointer level 3 dcl 1-18 ref 336 399 412 414 brief_sw 36 based bit(1) level 3 packed packed unaligned dcl 2-8 ref 366 clock builtin function dcl 92 ref 284 347 code 000100 automatic fixed bin(35,0) dcl 51 set ref 94* 163* 165 234* 236 239* 242 261* 263 276* 279 376* 409* 414* 417 417 command_abort_ 000136 stack reference condition dcl 90 ref 121 constant based structure level 1 dcl 4-27 cpu_time_and_paging_ 000042 constant entry external dcl 85 ref 286 349 ct 13 based pointer level 3 packed packed unaligned dcl 1-18 ref 434 445 divide builtin function dcl 92 ref 357 358 361 362 end_token 14 based bit(18) level 3 dcl 1-18 ref 434 445 execute 64 based bit(1) level 3 packed packed unaligned dcl 1-18 ref 112 175 224 268 307 335 398 executing_quit_request 64(05) based bit(1) level 3 packed packed unaligned dcl 1-18 set ref 114* ext_entry_runtime_dtype constant fixed bin(17,0) initial dcl 8-125 ref 167 ext_procedure_runtime_dtype constant fixed bin(17,0) initial dcl 8-125 ref 167 flags 64 based structure level 2 dcl 1-18 frame 2 based pointer level 2 dcl 148 set ref 181* 183 header based structure level 2 dcl 4-16 in_listener 64(01) based bit(1) level 3 packed packed unaligned dcl 1-18 ref 336 399 initial_source based structure level 1 dcl 6-14 set ref 232 414 414 int_entry_runtime_dtype constant fixed bin(17,0) initial dcl 8-125 ref 167 io_switches 66 based structure level 2 dcl 1-18 ioa_$ioa_switch 000044 constant entry external dcl 86 ref 366 370 iox_$control 000046 constant entry external dcl 87 ref 332 395 label_overlay based structure level 1 dcl 148 label_variable 000150 automatic label variable dcl 151 set ref 178 181 183 198 last_break_segno 47 based bit(18) level 2 dcl 2-8 set ref 290* last_clock 406 based fixed bin(71,0) level 3 dcl 2-8 set ref 284* 344 347* last_page_faults 412 based fixed bin(17,0) level 3 dcl 2-8 set ref 286* 346 350* last_vclock 410 based fixed bin(71,0) level 3 dcl 2-8 set ref 285* 345 348* length builtin function dcl 92 ref 239 239 276 276 line_type 000146 automatic fixed bin(17,0) dcl 146 set ref 163* 167 167 167 listener_info 210 based structure level 2 dcl 1-18 location based bit(18) array level 2 packed packed unaligned dcl 153 ref 178 map_array based structure array level 1 dcl 153 map_ptr 000156 automatic pointer dcl 156 set ref 176* 178 178 map_size 000154 automatic fixed bin(17,0) dcl 155 in begin block on line 143 set ref 177* map_size 110 based fixed bin(17,0) level 2 in structure "seg_info" dcl 9-9 in procedure "probe_ctl_requests_" ref 177 meter 21(09) based bit(1) level 3 packed packed unaligned dcl 3-14 ref 282 343 356 metering_info 406 based structure level 2 dcl 2-8 modes_ptr 2 based pointer level 2 packed packed unaligned dcl 1-18 ref 282 343 356 new_clock 000126 automatic fixed bin(71,0) dcl 58 set ref 347* 357 new_page_faults 000116 automatic fixed bin(17,0) dcl 54 set ref 349* 350 364 new_source_info 000102 automatic structure level 1 dcl 52 set ref 163 163 232* 234 234 239 239 261 261 276 276 new_vclock 000130 automatic fixed bin(71,0) dcl 58 set ref 348* 360 null builtin function dcl 92 ref 183 332 332 336 395 395 399 412 old_clock 000132 automatic fixed bin(71,0) dcl 58 set ref 344* 357 old_page_faults 000117 automatic fixed bin(17,0) dcl 54 set ref 346* 364 old_vclock 000134 automatic fixed bin(71,0) dcl 58 set ref 345* 360 output_switch 70 based pointer level 3 dcl 1-18 set ref 332* 366* 370* 395* page_faults 000120 automatic fixed bin(17,0) dcl 54 set ref 364* 370* place based pointer level 2 dcl 148 set ref 178* pointer builtin function dcl 92 ref 178 pointers 76 based structure level 2 dcl 9-9 probe_announce_entry_ 000020 constant entry external dcl 68 ref 353 406 probe_break_mgr_$is_temporary_break 000022 constant entry external dcl 69 ref 187 probe_break_mgr_$reset_all_pause_breaks 000024 constant entry external dcl 71 ref 117 probe_break_mgr_$reset_break_at_line 000026 constant entry external dcl 73 ref 190 193 414 probe_break_mgr_$set_break 000030 constant entry external dcl 76 ref 239 276 probe_error_ 000032 constant entry external dcl 79 ref 94 167 183 225 269 308 336 399 434 445 probe_error_$malfunction 000034 constant entry external dcl 80 ref 28 123 probe_et_$bad_label_frame 000010 external static fixed bin(35,0) dcl 60 set ref 183* probe_et_$breakless 000012 external static fixed bin(35,0) dcl 60 ref 417 probe_et_$noarg 000014 external static fixed bin(35,0) dcl 60 set ref 445* probe_et_$too_many_args 000016 external static fixed bin(35,0) dcl 60 set ref 434* probe_get_$line 000036 constant entry external dcl 82 ref 163 261 probe_info based structure level 1 dcl 1-18 probe_info_ptr 000144 automatic pointer dcl 1-86 set ref 94* 108* 112 114 117* 119 123* 129 132 158* 163* 167* 175 183* 187* 187 190* 190 193* 193 220* 224 225 225 225* 232 234* 239* 245 257* 261* 268 269 269 269* 276* 282 284 285 286 290 292 303* 307 308 308 308* 328* 332 335 336 336 336* 343 344 345 346 347 348 350 353* 356 366 366 370 376* 391* 395 398 399 399 399* 406* 409* 412 414* 414 414 414 434 434 434* 445 445 445* probe_listen_ 000040 constant entry external dcl 84 ref 376 409 probe_modes based structure level 1 dcl 3-14 probe_source_segment_$position_source 000050 constant entry external dcl 217 ref 234 probe_static_info based structure level 1 dcl 2-8 ptr_to_current_source 4 based pointer level 2 dcl 1-18 set ref 187* 190* 193* ptr_to_initial_source 6 based pointer level 2 dcl 1-18 ref 232 414 414 random_info 17 based structure level 2 dcl 1-18 real_minutes 000121 automatic fixed bin(17,0) dcl 54 set ref 358* 359 370 370* real_seconds 000122 automatic fixed bin(17,0) dcl 54 set ref 357* 358 359* 359 370* return_method 22 based fixed bin(17,0) level 3 dcl 1-18 set ref 119 129* 225 225 269 269 308 308 seg_info based structure level 1 dcl 9-9 seg_info_ptr 12 000102 automatic pointer level 2 dcl 52 set ref 176 177 source_info based structure level 1 dcl 6-5 stack_ptr 6 000102 automatic pointer level 2 dcl 52 set ref 181 statement_map based structure level 1 dcl 10-1 statement_map_ptr 100 based pointer level 3 packed packed unaligned dcl 9-9 ref 176 static_info_ptr 1 based pointer level 2 packed packed unaligned dcl 1-18 ref 284 285 286 290 344 345 346 347 348 350 366 stmnt_map_entry_index 000102 automatic fixed bin(17,0) level 2 dcl 52 set ref 178 switches 36 based structure level 2 dcl 2-8 token based structure level 1 dcl 4-16 token_header based structure level 1 dcl 4-4 token_info 12 based structure level 2 dcl 1-18 type 15 based fixed bin(17,0) level 2 in structure "break_slot" dcl 11-8 in procedure "probe_ctl_requests_" set ref 414* type 2 based bit(18) level 3 in structure "token" dcl 4-16 in procedure "probe_ctl_requests_" ref 434 445 vclock builtin function dcl 92 ref 285 348 virtual_10ksec 000124 automatic fixed bin(17,0) dcl 56 set ref 362* 366* 370* virtual_msec 000123 automatic fixed bin(17,0) dcl 56 set ref 361* 362 366* 370* virtual_usec 000125 automatic fixed bin(17,0) dcl 56 set ref 360* 361 362 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALGOL68_lang_type internal static fixed bin(17,0) initial dcl 12-17 ALM_lang_type internal static fixed bin(17,0) initial dcl 12-17 AMPERSAND internal static bit(18) initial dcl 7-17 ARROW internal static bit(18) initial dcl 7-17 BREAK_AT internal static fixed bin(17,0) initial dcl 11-25 BREAK_INPUT internal static fixed bin(17,0) initial dcl 13-13 BRIEF_mode_type internal static fixed bin(17,0) initial dcl 3-35 COBOL_lang_type internal static fixed bin(17,0) initial dcl 12-17 COLON internal static bit(18) initial dcl 7-17 COMMA internal static bit(18) initial dcl 7-17 CONSOLE_INPUT internal static fixed bin(17,0) initial dcl 13-13 CONSTANT_TYPE internal static bit(18) initial packed unaligned dcl 4-37 C_EQUAL internal static bit(18) initial dcl 7-17 C_INDIRECTION internal static bit(18) initial dcl 7-17 C_LEFT_SHIFT internal static bit(18) initial dcl 7-17 C_NOT_EQUAL internal static bit(18) initial dcl 7-17 C_RIGHT_SHIFT internal static bit(18) initial dcl 7-17 C_lang_type internal static fixed bin(17,0) initial dcl 12-17 DOLLAR_SIGN internal static bit(18) initial dcl 7-17 ENTRY_AT_BREAK internal static fixed bin(17,0) initial dcl 13-9 ENTRY_AT_CALL internal static fixed bin(17,0) initial dcl 13-9 ENTRY_AT_HALT internal static fixed bin(17,0) initial dcl 13-9 EQUALS internal static bit(18) initial dcl 7-17 FORTRAN_lang_type internal static fixed bin(17,0) initial dcl 12-17 GREATER_THAN internal static bit(18) initial dcl 7-17 LEFT_BRACKET internal static bit(18) initial dcl 7-17 LEFT_PAREN internal static bit(18) initial dcl 7-17 LESS_THAN internal static bit(18) initial dcl 7-17 LONG_mode_type internal static fixed bin(17,0) initial dcl 3-35 MACRO_INPUT internal static fixed bin(17,0) initial dcl 13-13 MINUS internal static bit(18) initial dcl 7-17 NAME_TYPE internal static bit(18) initial packed unaligned dcl 4-37 NEW_LINE internal static bit(18) initial dcl 7-17 NOT_EQUALS internal static bit(18) initial dcl 7-17 NOT_GREATER_THAN internal static bit(18) initial dcl 7-17 NOT_LESS_THAN internal static bit(18) initial dcl 7-17 NOT_SIGN internal static bit(18) initial dcl 7-17 OPERATOR_TYPE internal static bit(18) initial packed unaligned dcl 4-37 OPERATOR_VALUES internal static varying char(4) initial array dcl 7-43 OR_BAR internal static bit(18) initial dcl 7-17 OTHER_lang_type internal static fixed bin(17,0) initial dcl 12-17 PASCAL_ARROW internal static bit(18) initial dcl 7-17 PASCAL_ASSIGN internal static bit(18) initial dcl 7-17 PASCAL_RANGE internal static bit(18) initial dcl 7-17 PASCAL_lang_type internal static fixed bin(17,0) initial dcl 12-17 PERCENT internal static bit(18) initial dcl 7-17 PERIOD internal static bit(18) initial dcl 7-17 PL1_lang_type internal static fixed bin(17,0) initial dcl 12-17 PLACE internal static char(8) initial array dcl 11-29 PLUS internal static bit(18) initial dcl 7-17 QUESTION_MARK internal static bit(18) initial dcl 7-17 RETURN_TO_FRAME internal static fixed bin(17,0) initial dcl 13-4 RIGHT_BRACKET internal static bit(18) initial dcl 7-17 RIGHT_PAREN internal static bit(18) initial dcl 7-17 SEMI_COLON internal static bit(18) initial dcl 7-17 SHORT_mode_type internal static fixed bin(17,0) initial dcl 3-35 SLASH internal static bit(18) initial dcl 7-17 TIMES internal static bit(18) initial dcl 7-17 UNKNOWN_lang_type internal static fixed bin(17,0) initial dcl 12-17 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 8-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 8-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 8-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 8-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 8-25 area_dtype internal static fixed bin(17,0) initial dcl 8-25 bit_dtype internal static fixed bin(17,0) initial dcl 8-25 bsp automatic pointer dcl 11-23 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 8-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 8-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 8-25 c_union_dtype internal static fixed bin(17,0) initial dcl 8-25 char_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 8-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 8-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 8-25 current_constant based structure level 1 dcl 4-44 current_identifier_name based char packed unaligned dcl 4-42 current_source based structure level 1 dcl 6-13 current_token based structure level 1 dcl 4-45 entry_dtype internal static fixed bin(17,0) initial dcl 8-25 expression_area based area(1024) dcl 1-95 file_dtype internal static fixed bin(17,0) initial dcl 8-25 ft_char_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 8-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 8-96 identifier based structure level 1 dcl 4-19 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 8-125 label_dtype internal static fixed bin(17,0) initial dcl 8-25 official_language_names internal static char(32) initial array packed unaligned dcl 12-27 offset_dtype internal static fixed bin(17,0) initial dcl 8-25 operator based structure level 1 dcl 4-24 palatable_language_names internal static char(32) initial array packed unaligned dcl 12-30 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 8-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 8-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 8-125 pointer_dtype internal static fixed bin(17,0) initial dcl 8-25 probe_area based area(1024) dcl 1-93 probe_exclude_names based char(168) array packed unaligned dcl 2-94 probe_info_directories based char(168) array packed unaligned dcl 2-91 probe_info_version internal static fixed bin(17,0) initial dcl 1-88 probe_info_version_1 internal static fixed bin(17,0) initial dcl 1-90 probe_request_tables based pointer array dcl 2-88 probe_seg_info_array based structure level 1 dcl 2-82 real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 8-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 8-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 8-25 reference_arg_list based structure level 1 dcl 5-59 reference_node based structure level 1 dcl 5-16 reference_subscripts based structure level 1 dcl 5-64 scratch_area based area(1024) dcl 1-92 seg_info_nfiles automatic fixed bin(17,0) dcl 9-47 seg_info_offset_count automatic fixed bin(17,0) dcl 2-86 structure_dtype internal static fixed bin(17,0) initial dcl 8-25 subscript_reference_ptrs based structure level 1 dcl 5-69 varying_bit_dtype internal static fixed bin(17,0) initial dcl 8-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 8-25 work_area based area(1024) dcl 1-94 NAMES DECLARED BY EXPLICIT CONTEXT. CONTINUE 001120 constant label dcl 282 ref 315 MAIN_RETURN 000267 constant label dcl 100 ref 97 201 SOME_ERROR 000251 constant label dcl 94 ref 165 236 242 263 279 417 continue_request 001162 constant entry external dcl 298 continue_to_request 000765 constant entry external dcl 251 goto_request 000366 constant entry external dcl 138 goto_request_block 000373 constant label dcl 143 halt_request 001236 constant entry external dcl 321 pause_request 001600 constant entry external dcl 384 probe_ctl_requests_ 000240 constant entry external dcl 25 quit_request 000273 constant entry external dcl 103 reject_argument 001763 constant entry internal dcl 427 ref 110 173 222 266 305 330 393 require_argument 002010 constant entry internal dcl 440 ref 160 259 step_request 000626 constant entry external dcl 205 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2360 2432 2035 2370 Length 3146 2035 52 477 323 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_ctl_requests_ 302 external procedure is an external procedure. begin block on line 143 begin block shares stack frame of external procedure probe_ctl_requests_. reject_argument internal procedure shares stack frame of external procedure probe_ctl_requests_. require_argument internal procedure shares stack frame of external procedure probe_ctl_requests_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME probe_ctl_requests_ 000100 code probe_ctl_requests_ 000102 new_source_info probe_ctl_requests_ 000116 new_page_faults probe_ctl_requests_ 000117 old_page_faults probe_ctl_requests_ 000120 page_faults probe_ctl_requests_ 000121 real_minutes probe_ctl_requests_ 000122 real_seconds probe_ctl_requests_ 000123 virtual_msec probe_ctl_requests_ 000124 virtual_10ksec probe_ctl_requests_ 000125 virtual_usec probe_ctl_requests_ 000126 new_clock probe_ctl_requests_ 000130 new_vclock probe_ctl_requests_ 000132 old_clock probe_ctl_requests_ 000134 old_vclock probe_ctl_requests_ 000144 probe_info_ptr probe_ctl_requests_ 000146 line_type begin block on line 143 000150 label_variable begin block on line 143 000154 map_size begin block on line 143 000156 map_ptr begin block on line 143 THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as call_ext_out_desc call_ext_out return_mac tra_ext_2 signal_op ext_entry divide_fx3 clock_mac vclock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cpu_time_and_paging_ ioa_$ioa_switch iox_$control probe_announce_entry_ probe_break_mgr_$is_temporary_break probe_break_mgr_$reset_all_pause_breaks probe_break_mgr_$reset_break_at_line probe_break_mgr_$set_break probe_error_ probe_error_$malfunction probe_get_$line probe_listen_ probe_source_segment_$position_source THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. probe_et_$bad_label_frame probe_et_$breakless probe_et_$noarg probe_et_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 25 000237 28 000245 94 000251 97 000266 100 000267 103 000270 108 000300 110 000304 112 000305 114 000311 117 000313 119 000322 121 000326 123 000331 126 000356 129 000357 132 000361 134 000363 138 000364 158 000373 160 000377 163 000400 165 000426 167 000430 173 000467 175 000470 176 000474 177 000477 178 000502 181 000511 183 000513 187 000534 190 000553 193 000576 198 000621 201 000623 205 000624 220 000633 222 000637 224 000640 225 000644 232 000676 234 000703 236 000724 239 000726 242 000755 245 000757 247 000762 251 000763 257 000772 259 000776 261 000777 263 001026 266 001030 268 001031 269 001035 276 001067 279 001116 282 001120 284 001125 285 001131 286 001133 290 001151 292 001154 294 001157 298 001160 303 001167 305 001173 307 001174 308 001200 315 001232 317 001233 321 001234 328 001243 330 001247 332 001250 335 001302 336 001306 343 001342 344 001347 345 001353 346 001355 347 001357 348 001362 349 001365 350 001403 353 001407 356 001416 357 001423 358 001431 359 001433 360 001437 361 001442 362 001444 364 001452 366 001455 370 001514 376 001564 380 001575 384 001576 391 001605 393 001611 395 001612 398 001644 399 001650 406 001704 409 001713 412 001724 414 001731 417 001755 421 001762 427 001763 434 001764 437 002007 440 002010 445 002011 448 002034 ----------------------------------------------------------- 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