Inspect Manual

Using Inspect With Accelerated Programs on TNS/R
Systems
Inspect Manual429164-006
16-10
Data Breakpoints
Four Cycle Delay Reporting Data Breakpoints
The pipelined TNS/R system architecture results in data breakpoints being reported
four cycles after the access occurs. If a branch or procedure return occurred during
that time, the current location when the breakpoint is reported could be far from the
location that made the memory access. No additional data breakpoints will be triggered
during the four cycle delay.
The output of the EVENT status item lists the location where the data breakpoint
occurred:
MEMORY ACCESS BREAKPOINT bp-num:data-location [ OCCURRED AT code-location ]
The OCCURRED AT portion is printed if the accessing location, as represented using
the LOCATION FORMAT, is different from the current location. You can use the
location with the SOURCE AT command to display the source where the data access
occurred.
Due to accelerator optimizations, the location reported may occasionally indicate a
source line that is one or two lines before the statement accessing the data location.
The actual location may be between the OCCURRED AT location and the current
location.
Example
Suppose you place a breakpoint on the variable main-flag in a sample COBOL
program. The memory access event will be triggered when the value of main-flag
changes to one.
-C000OTCE-BREAK main-flag IF main-flag = 1Num Type Subtype Location 1 Data
Change Byte Address %14252 "MAIN-FLAG" IF MAIN-FLAG = 1
The program is allowed to continue with the RESUME command and it encounters the
data breakpoint.
-C000OTCE-RESUMEINSPECTMEMORY ACCESS BREAKPOINT 1: MAIN-FLAG OCCURRED AT
#LEVEL-1-PROGRAM-1.#13970(C000COBE)244,00,092 C000OTCE #LEVEL-1-PROGRAM-
1.#13990(C000COBE)
Notice that the status line indicates the program has stopped at line #13990, but the
memory access OCCURRED AT line #13970. The SOURCE command is used to look
at this area of the source program.
The current location, #13990, is indicated by the “*”. This is where the program is
currently suspended.
The actual memory access occurred earlier at line #13970, according to the
OCCURRED AT clause. Looking at the source, it does not appear that the value of
-C000OTCE-SOURCE #13950 Read-seq2-file SECTION. #13960
Read-seq2-file-para. #13970 READ seq2-file AT END -#13980
MOVE 1 TO main-flag. *#13990 IF (seq2-status NOT = ZEROS) AND
(NOT eof) #14000 MOVE 2 TO main-flag. #14010 #14020
CALL-TEST-1 SECTION. #14030 **** Calling level-2-program-1 with 2
BY REFERENCE and 2 BY CONT #14040 PERFORM test-init.