DBG$HELP.HLB  —  DEBUG  Debugging Configurations
    You can use the debugger in two configurations, default or
    multiprocess. Use the default configuration to debug a program
    that normally runs (without the debugger) in only one process.
    Use the multiprocess configuration to debug a program that
    normally runs in more than one process. The configuration depends
    only on the definition of the logical name DBG$PROCESS, as
    indicated in the following table:

    DBG$PROCESS
    Definition:            Configuration:

    DEFAULT or undefined   Default
    MULTIPROCESS           Multiprocess

    Note that the debugging configuration does not depend on whether
    the program runs in one or several processes. Rather, the current
    definition of DBG$PROCESS determines whether debuggable images
    running in different processes can be controlled from the same
    debugging session.

    Before starting the debugger, enter the DCL command SHOW LOGICAL
    DBG$PROCESS to determine the current definition of DBG$PROCESS
    and the resulting debugging configuration.

1  –  Default Configuration

    Use the default configuration to debug a program that normally
    runs (without the debugger) in only one process. This
    configuration is achieved when DBG$PROCESS is either undefined
    or has the definition DEFAULT.

    In the following example, the output of the SHOW LOGICAL command
    indicates that a default debugging configuration is in effect:

    $ SHOW LOGICAL DBG$PROCESS
    %SHOW-S-NOTRAN, no translation for logical name DBG$PROCESS

    If DBG$PROCESS has the value MULTIPROCESS, and you want to debug
    a program that runs in only one process, enter the following
    command:

    $ DEFINE DBG$PROCESS DEFAULT

2  –  Multiprocess Configuration

    Use the multiprocess configuration to debug a program that
    normally runs in more than one process. This configuration is
    achieved when DBG$PROCESS has the definition MULTIPROCESS, and it
    enables you to interact with several processes from one debugging
    session.

    Use the following command to establish a multiprocess debugging
    configuration:

    $ DEFINE/JOB DBG$PROCESS MULTIPROCESS

    As shown in this example, when defining DBG$PROCESS for a
    multiprocess configuration, use a job logical definition so that
    the definition applies to all processes in that job. An image
    can be connected to (and controlled by) an existing multiprocess
    debugging session only if the process running the image is in the
    same job as the process running the debugging session.

    Although all processes of a multiprocess configuration must
    be in the same job tree, they do not have to be related in a
    particular process/subprocess hierachy. Moreover, the program
    images running in separate processes do not have to communicate
    with each other.

3  –  Examples

    $ DEFINE/JOB DBG$PROCESS MULTIPROCESS
    $ DEBUG/KEEP

               Debugger Banner and Version Number

    DBG> RUN PROG1
    %DEBUG-I-INITIAL, language is FORTRAN, module set to PROG1
    %DEBUG-I-NOTATMAIN, type GO to get to start of main program
    predefined trace on activation at routine PROG1 in %PROCESS_
 NUMBER 1
    DBG_1>

    In this example, the DEFINE/JOB command establishes the
    multiprocess configuration and the debugger is then started.
    After the program PROG1 is brought under debugger control,
    the normal prompt changes to DBG_1>, indicating that this is
    a multiprocess debugging configuration and that execution is
    suspended in process 1 (the first process that was brought under
    debugger control). Process 1 is currently the visible process
    (the context for executing process-specific commands like STEP,
    EXAMINE, and so on).

    $ DEFINE DBG$PROCESS DEFAULT
    $ DEBUG/KEEP

               Debugger Banner and Version Number

    DBG> RUN FORMS
    %DEBUG-I-INITIAL, language is PASCAL, module set to FORMS
    DBG>

    In this example, the DEFINE command establishes the default
    configuration and the debugger is then started. After the program
    FORMS is brought under debugger control, the prompt remains DBG>,
    indicating that this is the default debugging configuration.

4  –  Process Relationships

    The debugger consists of two parts: A main debugger image
    (DEBUGSHR.EXE) that contains most of the debugger code and
    a smaller kernel debugger image (DEBUG.EXE). This separation
    reduces potential interference between the debugger and the
    program being debugged and also makes it possible to have a
    multiprocess debugging session.

    When you start the debugger, a process is created to run the main
    debugger.

    In a multiprocess debugging session, each program being debugged
    runs in a separate process. Each process that is running one or
    more images under debugger control is also running a local copy
    of the kernel debugger. The main debugger, running in its own
    process, communicates with the other processes through their
    kernel debuggers.

    Although all processes of a multiprocess session must be in
    the same job, they do not have to be related in a particular
    process/subprocess hierarchy. Moreover, the program images
    running in separate processes do not have to communicate with
    each other.
Close Help