THESE PROGRAMS IMPLEMENT A CORE DUMP FACILITY FOR RSX-11D AND IAS, FOR USER TASKS (RATHER THAN CDA WHICH ONLY ANALYSES SYSTEM CRASHES). IT IS USEFUL FOR FINDING BUGS IN PROGRAMS WHICH ARE "ALREADY" DEBUGGED BUT ABORTED UNEXPECTEDLY (AND UNDER POSSIBLY UNKNOWN CONDITIONS), FOR PROGRAMS WHICH CANNOT RUN UNDER ODT FOR VARIOUS REASONS, OR FOR FINDING HARDWARE MEMORY ERRORS NOT OCCURRING AS PARITY ERRORS. IT IS NOT INDENDED AS A REPLACEMENT FOR ODT OR DDT WHICH ARE INTERACTIVE DEBUGGING TOOLS AND WHICH IN MOST CASES ALLOW MUCH FASTER DEBUGGING THAN IS POSSIBLE WITH SUCH A DUMP FACILITY, WHICH IS MORE LIKE A BATCH STREAM DEBUGGING TOOL THAN MOST RSX SOFTWARE. THE CORE DUMP SYSTEM CONSISTS OF TWO PARTS, A SUBROUTINE TO .TKTN. WHICH DUMPS APPROPRIATE ABORTING TASKS' IMAGES INTO BINARY FILES, AND AN ANALYSIS PROGRAM WHICH WILL FORMAT THE OUTPUT INTO A MORE READABLE FORM. LOG IN TO A SYSTEM OR PRIVILEGED ACCOUNT, REFERRED TO AS [?,?]. TO INSTALL THE SYSTEM, IT IS FIRST NECESSARY TO ASSEMBLE THE FIXES TO .TKTN.. EDIT THE FILE 'DMPCOR.MAC'. ON THE THIRD PAGE ARE A NUMBER OF ASSEMBLY PARAMETERS REGARDING THE PRECISE TYPES OF TASKS WHICH WILL BE DUMPED, THE TYPE OF INFORMATION TO DUMP, AND WHERE TO PLACE THE DUMP FILE. THERE IS ALSO A SELECTION FOR A SOURCE LEVEL OR AN OBJECT LEVEL CHANGE TO .TKTN.; IF YOU DO NOT HAVE SOURCES OR DO NOT WISH TO MAKE A SOURCE LEVEL CHANGE THE SYMBOL 'PATCH' MUST BE DEFINED. AFTER THESE CHANGES HAVE BEEN MADE, ASSEMBLE THE FILE: MCR>MAC DMPCOR,LP:/LI:TTM=DMPCOR NEXT: 1) IF YOU ARE MAKING A SOURCE LEVEL CHANGE, EDIT THE FILE [311,13]TKTN.MAC. LOCATE THE LINE BEGINNING WITH 'START:'. AFTER THAT SYMBOL, BEFORE THE LINE 'ATLSCN: MOV PSEXP,-(SP)', PLACE AN INSTRUCTION 'CALL DMPINI'. NEXT FIND THE LINE 'MOV #"SP,TMPL2+2'. FIND THE NEXT CALL TO 'TYPREG' AFTER THAT LINE AND PLACE AN INSTRUCTION 'CALL DMPCOR' AFTER THE CALL TO TYPREG. EXIT THE EDITOR AND ASSEMBLE .TKTN.: MCR>MAC TKTN,LP:/LI:TTM=[311,13]TKTN 2) IF YOU ARE MAKING AN OBJECT LEVEL PATCH, ASSEMBLE THE MODULE 'TKTNPAT.MAC': MCR>MAC TKTNPAT,LP:/LI:TTM=TKTNPAT NOW APPLY THE PATCH FILE TO [11,13]TKTN.OBJ (IT MIGHT BE A GOOD IDEA TO KEEP A COPY IN CASE OF MISHAP). MCR>INS [11,1]PAT MCR>PAT TKTN=[11,13]TKTN,[?,?]TKTNPAT NOW BUILD .TKTN., REMOVE .TKTN. AND RE-INSTALL: MCR>TKB @TKTN MCR>REM .TKTN. MCR>INS TKTN NOW IT IS TIME TO BUILD THE CORE DUMP ANALYSIS TASK. THE DEFAULT PAGE SIZE CAN BE MODIFIED BY CHANGING THE SYMBOL 'PAGSIZ' ON THE SECOND PAGE; THE CURRENT DEFAULT IS 59. THERE ARE NO OTHER CONDITIONAL ASSEMBLIES, SO: MCR>MAC COREANL,LP:/LI:TTM=COREANL MCR>MAC PRFCS,LP:/LI:TTM=PRFCS MCR>TKB @COREANL MCR>INS COREANL THE CORE DUMP ANALYSIS TASK IS NAMED ...COR. IT HAS TWELVE SWITCHES EXPLAINED IN MORE DETAIL ON PAGE 1 IN THE ASSEMBLER SOURCE FILE: /R5 DUMP RADIX 50 ON TASK CORE /BY DUMP IN BYTE MODE BINARY; /-BY DUMPS WORD MODE /AS PRINT ASCII AS WELL AS BINARY /N5 NO RADIX 50 EVEN ON SYSTEM TABLES /RO DUMP TASK READ-ONLY SECTION (ONLY IF THERE) /CM DUMP COMMON AREAS (LIBRARIES ONLY IF /RO ALSO) /RW DUMP TASK READ/WRITE SECTION /SY DUMP SYSTEM TABLES /HD DUMP TASK HEADER /SP SPOOL LISTING FILE AND DELETE WHEN DONE. /MD:X:Y DUMP TASK CORE FROM ADDRESS X TO Y. /PS:X PAGE SIZE IS TO BE X. DEFAULTS: /-R5/-BY/AS/-N5/-RO/-CM/RW/SY/HD/SP/MD:0:177777/PS:59 THE PROGRAM WILL NOT ATTEMPT A CORE DUMP IF A FAULT OCCURRS WHICH DOES NOT PRINT THE REGISTERS (I. E., DISK READ ERR, DISK WRITE ERR, VIA 'EXIT' WITH PENDING I/O, MEMORY PARITY ERROR) ONE WORD OF CAUTION: THE EXEC AND .TKTN. USE THE A.FM+0 WORD IN THE ATL NODE OF AN ABORTING TASK TO HOLD THE TERMINATION CODE, AND THE TASK'S STATUS IS ALWAYS 'SUSPENDED FOR TERMINATION MESSAGE', SO THERE IS NO GETTING THE TASK'S EVENT FLAG MASKS 1-16 OR THE CURRENT OR AST STATUS OUT AFTER A DUMP !!! THESE PROGRAMS HAVE A FEW KNOWN DEFICIECNIES, BUT NO GREAT DIFFICULTIES SHOULD BE ENCOUNTERED BECAUSE OF THEM: 1) THE PROGRAMS DO NOT HANDLE I/D SPACE. IF IT IS EVER IMPLEMENTED, THE .TKTN. SUBROUTINE PROBABLY WOULD NOT NEED TO BE MODIFIED, BUT THE COREANL PROGRAM (PARTICULARLY THE "GETPDR" SUBROUTINE) WOULD. THIS DOES NOT SEEM SERIOUS AT THE PRESENT TIME. 2) MORE IMPORTENTLY, NEITHER PROGRAM IMPLEMENTS THE PLAS FEATURE. I AM NOT SURE HOW THAT FEATURE WILL LOOK, AND I HAVE NOT HAD A CHANCE TO GET AN IDEA. PROBABLY THE .TKTN. SUBROUTINE COULD BE LEFT UNMODIFIED, AND THE COREANL PROGRAM CHANGED (POSSIBLY IN "GETPDR") TO FIND THAT PART OF THE PROGRAM WHICH WAS MAPPED INTO THE ADDRESS SPACE AND DUMP THAT AT THE APPROPRIATE ADDRESS. ALSO, A METHOD FOR GETTING OUT THE PART OF THE PLAS NOT MAPPED INTO THE TASK SPACE WOULD BE OF INTEREST.