• Aucun résultat trouvé

DYNAMIC DUMPS

Dans le document System Volume (Page 101-108)

I EPS01/E I EPS02/E I CHll/C I CHI2/C]

Volume 3 System Processors UPOA TE LEVEL

3. Debugging Aids

3.3. DYNAMIC DUMPS

The dynamic dumps are discussed from the viewpoint of the SPERRY UNIVAC 1100 Series Assembler user. There is no inherent restriction on the employment of this facility with any other processor.

All that is needed is that the proper information be written to the diagnostic file. Library routines are provided to assist in the process. The use of the dynamic dump facility by a high level language processor fails outside the scope of this manual.

Dynamic diagnostic requests are generated by procedure-calls from within the user program. These procedure calls collect the dynamic diagnostic library subroutines in to the user object program. The requested dynamic diagnostic information is written into the diagnostic file by the library subroutines while the object program is being executed. When called on during program execution, these subroutines preserve the complete program environment and perform the requested dynamic diagnostic request. If the user's program has multiple activities, only one activity at a time may execute dynamic dump calls since the dynamic dump routines are non-reentrant.

The amount of information which can be written into the dynamic diagnostic portion of diagnostic file can be set dynamically through the use of the X$SIZE procedure (see 3.3.3.5). If this procedure is not used, the length will automatically be limited by the value specified in the system's generation.

When the dynamic diagnostic portion of diagnostic file is filled, a message is supplied indicating that no more dynamic diagnostics can be transferred to the diagnostic file. All subsequent dynamic diagnostic requests for this program are ignored. After program termination in batch mode, the dump information is retrieved from the diagnostic file, edited and printed. When in demand mode, a message will be displayed informing the user that diagnostic dumps are available and the name of the program that produced the dumps. The user may then call the PMD processor with an M option to retrieve, edit, and print the dynamic dumps only; or without the M option to retrieve, edit, and print both the diagnostic dumps and a dump of the program.

There are 19 different library subroutines associated with the dynamic diagnostic procedures. These routines can be divided into three functional classifications:

1. Dump Procedures: X$MESG, X$CW, X$CQRE, X$DUMP, X$TAPE, X$DRUM, X$FILE, and X$CREG which are used to record data in the diagnostic file.

2. Conditional Control Procedures: X$IF, X$AND, X$OR, and X$TALY which are used to determine when a given dump or series of dumps should occur.

3. Specification Procedures: X$FRMT, X$BUFR, X$MARK, X$BACK, X$SIZE, X$ON, and X$OFF which are used to specify the condition switch and other global diagnostic parameters.

4144;31

I

SPERRY UNIVAC 1100 Series Executive 3-9

up~~~~.

______________ V_o_'u_m __ e_3 __ S_y_s_te_m ___ p_ro_c_e_s_s_o_rs ____________________

-LU_P_DA_T_E_L~_E_L

__

~~P_A_GE

____ ___

3.3. 1. Dump Calling Procedures

The procedures available for obtaining dynamic dumps are:

XC:ORE$ (sE~e 3.3.1.1) XCIUMP$ (see 3.3.1.2) XC:W$ (see 3.3.1.3) . XTAPE$ (see 3.3. 1.4)

XDRUM$ (see 3.3.1.5) X$FILE (see 3.3.1.6) XCREG $ (sE~e 3.3. 1.7)

All dynBllnic dump procedures are executed only if the switch XSTAT$ (see 3.3.3.2) is on.

The dynamic dump procedures save and restore all control registers as well as the carry and overflow conditions. The dynamic dump routines contained in SYS$*RLlBS are not reentrant. Therefore, only one activity of a program should reference these procedures at a time.

3.3. 1. 1.. Main Storage Dump (XCORE$)

Purpose:

Produces a dump of the specified main storage area.

Format:

N$

SLJ FORM

N$

+

XCORE$

4,14,18

index-reg,word-count,starting-addr 'format',O

This linkage may be generated by the procedure call:

X$CORE starting-addr,word-count,'format',index-reg Parameters:

starting--addr word-count 'format'

index-rEtg

Specifies the main storage starting location of the dump.

Specifies the number of locations to be dumped (037777 maximum).

Specifies a single letter, enclosed in quotes, which references either a standard (see 3.3.1.8.1) or a user-defined (see 3.3.1.8.2) editing format. If omitted, an octal dump is produced.

Specifies the index register used to modify the address specified by the starting-addr parameter. This parameter, which may be omitted or left zero, can be set to values from 1 to 15 to specify an index register from X 1 through A3. The value in the index register is added to the starting-addr value to get the actual dump starting address.

4144.31

UP-NUMBER

Description:

SPERRY UNIVAC 1100 Series Executive

Volume 3 System Processors UPDATE LEVEL

1. The main storage dump begins at address TASLEX as modified by index register X5. The dump is 100 words in length and is presented in standard octal format.

2. The main storage dump begins at address TASLEY, has a word length of 150, and is presented in standard octal format.

3. The main storage dump begins at address WW3X as modified by index register X 1 O. The dump is 250 words in length and is presented in alphanumeric format.

Specifies the number of locations to be dumped (037777 maximum).

If omitted, a length of zero is assumed and no main storage dump is produced.

Specifies a single letter, enclosed in quotes, which references either a standard (see 3.3.31.8.1) or a user-defined (see 3.3.1.8.2) editing format. If omitted, an octal dump is produced.

Specifies, enclosed in quotes, one or more letters representing the A, X, and R registers. The contents of these registers are printed in octal.

4144.31 UP-HUMBER

index-neg

rngister·-code

Descrip1tion:

SPERRY UNIVAC 1100 Series Executive

Volume 3 System Processors UPDATE LEVEL

3-11

PAGE

Specifies the index register used to modify the address specified by the starting-addr parameter. This parameter, which may be omitted or left zero, can be set to values from 1 to 15 to specify an index register from X 1 through A3. The value in the index register is added to the starting-addr value to get the actual dump starting address.

The following additional information is provided following the **DUMP** heading:

• element name

1. Th«~ main st()rage dump begins at address TABLEY as modified by index register X 1 O. The dump is :~OO words in length. The contents of all X and A control registers are also dumped. The dump is presented in the standard integer format.

2. Th«~ main storage dump begins at address TABLEZ and has a length of 500 words. The contents of

.all

R control registers (except RO) are also dumped. The dump is presented in the standard alphanumeric format.

3. Th«~ contents of all R control registers (except RO) are dumped in octal format.

4. Th43 main storage dump begins at address BSS6 as modified by index register X9. The dump is ~iOO words in length. The contents of the X registers are also dumped. The dump is prese..nted in octal format.

4144.31

UP~UM8ER

SPERRY UNIVAC 1100 Series Executive Volume 3 System Processors contents. The number of separate areas that may be dumped is restricted to five. The starting-addr and length determine the uniqueness of one area from the next.

Specifies the number of locations to be dumped (037777 maximum).

Specifies a single letter, enclosed in quotes, which references one of the following standard editing formats: A, E, F, G, I, N, 0,

a,

and S (see 3.3.1.8.1). Standard format D and user-defined formats cannot be specified. If omitted, an octal dump is produced.

The number of calls on X$CW is not limited, but only five separate areas may be dumped.

Changed word dumps, whether or not any words were changed are preceded by the following heading plus the appropriate changed-word status word message:

**CHANGED WORD CORE DUMP** presented in standard octal format. Since this is the call specifying an area starting at REWORD, all of the area is dumped.

4144.31

UP-NUMBER

I

SPERRY UNIVAC 1100 Series Executive

I I

3 13

~,

____________ V_o_l_u_m_e __ 3 __ S_y_st_e_m __ P_r_o_c_e_ss_o_r_s ______________________

~~U_PD_A_TE_L_~_EL

____

~_PA~G~E_-

_____ _

3. Tho changed word dump begins at address HTR5. The dump is 750 words in length and is presented in fixed-point decimal format.

4. ThE~ changed word dump begins at address INSERT. Any words in the 10-word area starti.1g at clddress INSERT which were changed since dump number 1 occured are printed showing the . previous and current contents.

3.3.1.4. Tape Block Dump (XTAPE$)

Purpose::

Dumps the block of magnetic tape data located just prior to the current tape position by making temporary use of a previously defined buffer initialized by the X$BUFR procedure (see 3.3.3.1). The magnetic tape is moved backward one block, the block is read, and the number of words specified in the XSBUFR procedure are dumped.

Format:

SLJI XTAPE$

+

word-count,buffer-addr

+

'f()rmat',I/O-pktaddr

This linkage may be generated by the procedure call:

X$TAPE I/O-pktaddr,'format'

Paramet~ers:

I/O-pktaddr

'format'

Descriptiion:

Specifies the address of the I/O request packet (see Volume 2-6.2) for the device handler. This parameter may be the address of a file control table (FCT) as is used by block buffering and other routines, since the first six words of an FCT is an I/O packet.

Specifies a single letter, enclosed in quotes, which references either a standard (see 3.3.1.8.1) or user-defined (see 3.3.1.8.2) editing format. If omitted, an octal dump is produced.

Interbloc:k gaps separate the blocks that are recorded on magnetic tape each time an 1/0 write of any size word count is done. These interblock gaps, which serve as block separators, are not to be confused with end-of-file (EOF) marks, which are a special kind of block surrounded by interblock gaps. The X$TAPE procedure causes a move backward to the preceding interrecord gap, then a read of everything which follows (could be one word or tens of thousands of words) into the buffer initialized by an X $ BUFR procedure (see 3.3.3.1) until the next interrecord gap is encountered. When the buffor is filled, the remaining words are lost.

The X$TAPE procedure is useful for dumping a block that was just read or written. No dump occurs if the magnetic tape is positioned at the load point (beginning-of-tape marker).

No magnetic tape' dump occurs if a main storage buffer is not reserved and initialized for the X$TAPE procedure.

The same buffer area can be used for both X$DRUM (see 3.3.1.5) and X$TAPE procedure calls.

4144.31 UP-NUMBER

SPERRY UNIVAC 1100 Series executive

Volume 3 System Processors UPDATE LEVEL

3-14 PAGE

The word count and buffer address are returned by the X$TAPE procedure to the first parameter word.

The tape drum printout is preceded by the heading:

*TAPE DUMP

**FILE filename Example:

1. X$BUFR 2. X$TAPE 3. X$BUFR 4. SLJ

+ +

ALPHA, 150 F I LEA, . O' BUFS,SOO XTAPE$

SOO, BUFS . 0', NP16

1. The block of data prior to the present magnetic tape position is read into the main storage location ALPHA (previously initialized by the X$BUFR procedure call) and is printed in standard octal format. FILEA specifies the I/O packet address. If the block is longer than 150 words, the first 150 words are dumped.

2. The block of data prior to the present magnetic tape position is read into the main storage location BUFS and is printed in standard octal format. NP 16 specifies the 1/0 packet address.

3.3. 1.5. Mass Storage Dump (XDRUM

$) Purpose:

Dumps portions of FASTRAND drum-formatted mass storage by making temporary use of a previouly defined buffer initialized by the X$BUFR procedure (see 3.3.3.1). Portions of mass storage to be dumped and read into the buffer, then the contents of the buffer is written into the diagnostic file.

Format:

SLJ XDRUM$

+ word-count,location-addr + 'format' ,I/O-pktaddr

This linkage may be generated by the procedure call:

X$ORUM 1/0-pktaddr,location-addr,word-count,format Parameters:

I/O-pktaddr

location-addr

Specifies the address of the I/O packet containing the internal filename (see Volume 2-6.2).

Specifies the address of a word which contains the relative starting sector address or a word address of the file to be dumped. (In some cases, this address may be I/O-pktaddr+ 5, which contains a sector address or a word address.) The manner in which the file was assigned determines whether the address specified is a word address or a sector address (see Volume 2-3.7.1.1 and 2-3.7.1.3).

4144.31

I

SPERRY UNIVAC 1100 Series Executive 3-16

up~u~~

_____________ V_o_lu_m __ e_3 __ S_y_s_te_m __ P_r_o_c_e_ss_o_r_s ____________________

~U_P_DA_TE_L_~_E_L

__

~_PA_G_E

____ ___

word-cclunt 'format'

Description:

Specifies the number of locations to be dumped.

Specifies a single letter, enclosed in quotes, which references either a standard (see 3.3.1.8.1) or a user-defined (see 3.3.1.8.2) editing format. If omitted, an octal dump is produced.

The mass storag1e dump printout is preceded by the heading:

**DRUM DUMP** FILE filename AT RELATIVE SECTOR sector-number

Use of the X$DRUM procedure requires a main storage buffer into which the mass storage dump can be read. The mass storage area to be dumped is read into the buffer. When it is filled, the contentsi of the buffer is written into the diagnostic file. For FASTRAND drum-formatted files, it is recomm,ended that the buffer be some multiple of 28, the length of a FASTRAND drum mass storage sector. While a portion of mass storage that is larger than the size of the buffer may be dumped, greater 43fficiency results by providing a buffer that is sufficiently large to hold all the mass storage to be dUlmped at one time.

If a main storage buffer is not reserved and initialized for the X$DRUM procedure, no mass storage dump occurs.

The same buffer area can be used for both X$DRUM and X$TAPE (see 3.3.1.5 and 3.3.1.4) procedure calls.

Example:

1. X$I3UFR

Dans le document System Volume (Page 101-108)