IBM OLIVER (CICS Interactive Test/debug) - Technical Details

Technical Details

OLIVER provided source and instruction level Program animation, instruction step ("single cycle"), conditional program breakpoint ("Pause") and storage alteration features for Assembler, COBOL and PL/I programs. High level language (HLL) users were able to see and modify variables directly at a breakpoint.

From the earliest version, OLIVER was a "full screen" debugger, incorporating a mult-line symbolic disassembler allowing program animation. Line commands provided allowed a pause/breakpoint to be set anywhere in the displayed program with a single keystroke. Registers were all displayed continuously (and automatically highlighted if any changes occurred). A "hyperlink-style" feature allowed memory to be displayed using an "L" (meaning load) line command in any register or other fullword memory display.

Oliver also provided fully automatic features to prevent application program errors such as:-

  • Program Checks - all types (usually intercepted prior to them actually being executed)
  • "Wild branch" - (entirely software detected)
  • "illegal SVC" - (CICS applications were not allowed to use any operating system calls)
  • "CICS AICA" Abends - ("program loop")
  • excessive resource usage including:-
  • loops involving repeated CICS macro calls (before a warning - "possible macro loop")
  • exceeding a set limit of instructions (before a warning - "possible loop")
  • excessive total storage for single transaction ("too much storage")
  • illegal or potentially damaging CICS API requests (e.g. attempts to read into non-owned memory)
- All CICS API calls were effectively "Shimmed" by OLIVER anyhow and checked for validity (If CEDF was also active, control would pass to it quite naturally while stepping through the API call).

It was possible to correct many errors and interactively alter the control flow of the executing application program while still running. This permitted more errors to be detected for each compilation (which, at the time, were often scheduled batch jobs with printed output, often requiring several hours "turnaround", before eventually re-loading the program (using CSMT/CEMT Newcopy) and retrying the failing transaction).

Whatever kind of program error was encountered, OLIVER always discovered it before actual execution took place and always (up to) the last 84 previous instruction locations were immediately available to diagnose the precise path leading to the specific error (true across linked modules of possibly mixed languages, dynamically loaded programs or even dynamically built runtime code). In the case of potential loops, it was possible to re-try until the next threshold was reached.

OLIVER additionally provided fully automatic storage protection features to prevent rogue applications from overwriting storage occupied by other applications ("storage violations", or buffer overflows), OLIVER included complete and automatic protection for CICS system tables and all other otherwise unprotected kernel code.

Read more about this topic:  IBM OLIVER (CICS Interactive Test/debug)

Famous quotes containing the words technical and/or details:

    In effect, to follow, not to force the public inclination; to give a direction, a form, a technical dress, and a specific sanction, to the general sense of the community, is the true end of legislature.
    Edmund Burke (1729–1797)

    There was a time when the average reader read a novel simply for the moral he could get out of it, and however naïve that may have been, it was a good deal less naïve than some of the limited objectives he has now. Today novels are considered to be entirely concerned with the social or economic or psychological forces that they will by necessity exhibit, or with those details of daily life that are for the good novelist only means to some deeper end.
    Flannery O’Connor (1925–1964)