

 PROC dum$display_debug_table_entry, display_debug_table_entry, disdte (
   entry, e: LIST OF any = $OPTIONAL
   help: boolean = FALSE
   status)
   IF $specified(help) THEN
     IF $value(help) THEN
       putl '0  DISPLAY_DEBUG_TABLE_ENTRY  (DISDTE) ' o=$output
       putl '     entry, e: LIST OF any = $REQUIRED' o=$output
       putl '     help: boolean = FALSE' o=$output
       putl '     status)' o=$output
       putl '0    This procedure uses a list of process_virtual_addresses (PVAs)' o=$output
       putl '     and/or operating_system symbols.  If the entry in the list is' o=$output
       putl '     a PVA it will return the module, section, and offset into the' o=$output
       putl '     section.  If the entry in the list is an operating_system symbol' o=$output
       putl '     the procedure will return the address of the symbol.' o=$output
       putl ' ' o=$output
       EXIT_PROC
     IFEND
   IFEND
   IF $specified(entry) THEN
     WHEN program_fault DO
       put_line '  -- ERROR -- '//$string($value(entry,i))//' was not found.' o=$output
       CONTINUE
     WHENEND
     FOR i = 1 TO $set_count(entry) DO
       IF $value_kind(entry, i) = 'INTEGER' THEN
       " Display the symbol and offset in the code for this address."
         line = ' Address: '//$strrep($value(entry, i),16)//'(16) ==> '//$section($value(entry, i))//' in Module '//$trim($module($value(entry, i)))//'.'
         disv line o=$output
       ELSEIF $value_kind(entry, i) = 'NAME' THEN
       " Display the address of this symbol, if possible."
         put_line '  Symbol: '//$string($value(entry, i))//' is located at PVA address: '//$strrep($sa($value(entry, i)),16)//'(16).' o=$output
       ELSE
       " This is an illegal value_kind.  Display this fact."
         IF ($value_kind(entry, i) = 'FILE') OR ($value_kind(entry, i) = 'BOOLEAN') THEN
           disv '-- ERROR -- Expecting NAME or INTEGER; found '//$string($value(entry, i))//' for parameter ENTRY.' o=$output
         ELSEIF $value_kind(entry, i) = 'STRING' THEN
           disv '-- ERROR -- Expecting NAME or INTEGER; found string '''//$value(entry, i)//''' for parameter ENTRY.' o=$output
         ELSEIF $value_kind(entry, i) = 'STATUS' THEN
           disv '-- ERROR -- Expecting NAME or INTEGER; found '//$string($value(entry, i))//' for parameter ENTRY.' o=$output
           disv '-- ERROR -- Expecting NAME or INTEGER; found STATUS for parameter ENTRY.' o=$output
         ELSEIF $value_kind(entry, i) = 'UNKNOWN' THEN
           disv '-- ERROR -- Expecting NAME or INTEGER; found UNKNOWN for parameter ENTRY.' o=$output
         IFEND
       IFEND
     FOREND
   IFEND
 PROCEND dum$display_debug_table_entry
