18.08.2013 Views

(SYSLIB) Programming Reference Manual - Public Support Login ...

(SYSLIB) Programming Reference Manual - Public Support Login ...

(SYSLIB) Programming Reference Manual - Public Support Login ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Program Trace Routine<br />

In demand mode, the caller has control and can examine the program environment. No<br />

distinction is made between fatal and nonfatal contingencies in demand mode. Note<br />

that it is the caller's responsibility to clear registers in case of arithmetic fault and to<br />

respond to the onsite operator in case of a II keyin. For interrupt guard mode (IGDM),<br />

the trapped address may or may not be the address of the offending instruction.<br />

Contingency interception can be reset with the following:<br />

SLJ SNCLR$<br />

In frequently executed code, the caller may not want to trace every iteration of a loop or<br />

every call of a subroutine. A bug may not appear until a routine executes a number of<br />

times. The following calling sequence provides a way to call SNOOPY selectively.<br />

SLJ TCNT$<br />

+ count,start<br />

+ until,every<br />

+ mode-bits,termination-address<br />

where mode-bits and termination-address are the same as for an SLJ to SNOOPY.<br />

The count field should be zero initially; it is incremented on each pass through the code.<br />

If start ≤ count < until and (count - start)///every = 0 or (count - start) modulo every = 0,<br />

SNOOPY begins tracing following the mode word. Otherwise, execution will continue in<br />

normal (untraced) mode.<br />

24.4.2. Demand Mode Commands<br />

These are the SNOOPY commands, their permissible abbreviations, and their functions.<br />

ABSAD (ABS, A)<br />

Converts relative program addresses to absolute addresses. The parameters are<br />

eltname,loc-counter,location.<br />

or<br />

symbol*<br />

If the program is segmented and the specified address is in a segment not in main<br />

storage, a message is printed.<br />

In case of symbols, the Collector may look up only referenced symbols defined by<br />

non-SYS$*RLIB$ routines unless the collection source code includes a<br />

“TYPE EXTDIAG” statement. In this case, the Collector may search for all symbols<br />

(see the Collector <strong>Programming</strong> <strong>Reference</strong> <strong>Manual</strong>).<br />

This command is useful in conjunction with the BREAK, CAPTUR, CHANGE, DUMP,<br />

JUMP, and TRAP commands.<br />

24–8 7833 1733–004

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!