Browse Prior Art Database

Cross-Address Space Control Function

IP.com Disclosure Number: IPCOM000106360D
Original Publication Date: 1993-Oct-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 6 page(s) / 156K

Publishing Venue

IBM

Related People

Ault, D: AUTHOR [+4]

Abstract

A method that allows an MVS address space to control another address space for bebugging purposes is disclosed. This Cross-Address Space control Function, also known as ptrace, is used to support debugging of POSIX compliant programs on MVS by debugger programs. Ptrace includes a system call provided to allow a debugger to control another address space, a set of "hooks" that give control to the debugger for certain defined events, and a Supervisor Call (SVC) instruction to support instruction breakpointing. A data space is used as a control area and also as a buffer for data movement between the controlling and the controlled address spaces. MVS B1 security and integrity aspects are maintained.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 44% of the total text.

Cross-Address Space Control Function

      A method that allows an MVS address space to control another
address space for bebugging purposes is disclosed.  This
Cross-Address Space control Function, also known as ptrace, is used
to support debugging of POSIX compliant programs on MVS by debugger
programs.  Ptrace includes a system call provided to allow a debugger
to control another address space, a set of "hooks" that give control
to the debugger for certain defined events, and a Supervisor Call
(SVC) instruction to support instruction breakpointing.  A data space
is used as a control area and also as a buffer for data movement
between the controlling and the controlled address spaces.  MVS B1
security and integrity aspects are maintained.

The Cross-Address space Control Function provides the following
services:

1.  The ability for an address space to gain control of the
    processing flow of an address space which it started, or to
    attach to another unrelated address space for the same purpose,
    based on certain events in the controlled address space.

2.    The ability to control additional address space(s) if a
    controlled address space creates other address space(s).

3.    The ability for an address space to modify the Program Status
    Word (PSW), registers, and storage in the controlled address
    space(s).

4.    The ability to continue, terminate or relinquish control of the
    controlled address space(s).

Fig. 1 illustrates the solution.

1.    The Cross-Address Space Control Function provides the ptrace
    system call to:

    o     Turn the Cross Address Space Control Function on and off.

    o     Allow the controlling address space to read and write data,
        and set breakpoints in the controlled address space.

    o     Allow the controlling address space to handle abends and
        program checks in the controlled address space.

    o     Allow the controlling address space to obtain information
        about modules loaded in the controlled address space.

    o     Allow the controlling address space to terminate the
        controlled address space.

2.    The Cross-Address Space Control Function gets control via
    "hooks" in the controlled address space when one of the following
    events occurs:

    o     At the completion of an OpenMVS Exec syscall prior to the
        dispatching of the Exec(ed) program.

    o     At the completion of an OpenMVS Fork syscall prior to the
        dispatching of the Fork(ed) program in the parent and child
        address spaces.

    o     Upon generation of Open/MVS signals prior to delivery.

    o     When an implementation defined breakpoint instruction (SVC
        144 in OpenMVS) is executed.

    o      During recovery for an abend or program check.

3.    When an event occurs in a cont...