Browse Prior Art Database

Break Offset Mapping and Tracing With Break Offset Map Tables

IP.com Disclosure Number: IPCOM000081364D
Original Publication Date: 1974-May-01
Included in the Prior Art Database: 2005-Feb-27
Document File: 3 page(s) / 93K

Publishing Venue

IBM

Related People

Bains, RL: AUTHOR [+3]

Abstract

Break Offset Mapping provides a means for debugging programs written in a high-level language (HLL). The basis of a Break Offset Map (BOM) is a bit (break flag) reserved in each machine instruction. If the bit is on, the machine (hardware, microcode, or simulator) interrupts program execution at that point and initiates a testing services routine (hardware, microcode, or software). If the bit is off, execution continues without interruption.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 3

Break Offset Mapping and Tracing With Break Offset Map Tables

Break Offset Mapping provides a means for debugging programs written in a high-level language (HLL). The basis of a Break Offset Map (BOM) is a bit (break flag) reserved in each machine instruction. If the bit is on, the machine (hardware, microcode, or simulator) interrupts program execution at that point and initiates a testing services routine (hardware, microcode, or software). If the bit is off, execution continues without interruption.

A HLL processor which generates intermediate text for a lower level language processor inserts a BREAK statement after each group of statements, which corresponds to a single HLL source statement. The BREAK operators demarcate HLL processor generated source statement code groups and have as an operand an identifier for the HLL.

The lowest level processor, which generates machine executable code, builds a BOM table for each level of intermediate text. The BOM tables contain the displacements from the beginning of the code segment of those instructions, corresponding to the beginning of each higher level language statement. This is generally illustrated in Fig. 1.

When the system program loader or encapsulator routine loads a module it looks at one of the BOM tables, as requested, and sets break flags in the machine executable OP codes indicated by the displacements in the BOM table. During execution, these bits cause an interruption to a testing services routine.

In order to maintain performance, the break flags are tested by hardware as part of 1-fetch. The presence of a break flag causes a trap to a microcode routine. Many different functions are performable by this routine, at the option of the programmer. For ultimate flexibility, control can be passed to software and operations as instruction stop, address stop, etc., can be simulated in a HLL by interacting with a programmer at a terminal. An I-fetch branch with and without a break bit is illustrated in Figs. 2 and...