Space announcement This documentation space provides the same content as before, but the organization of the content has changed. The content is now organized based on logical branches instead of legacy book titles. We hope that the new structure will help you quickly find the content that you need.

PSEUDOSOURCE


COBOL

PL/I

Assembler

C Language

Description

Use the PSEUDOSOURCE command, which can be abbreviated as PSEUDOSO, PSEUDO, or PS, to create a temporary source image of a module or CSECT that does not have a matching BMC source listing. The source image created with this command is a pseudo-assembler view of the loaded object code.

Code Debug TSO assumes that any subsequent breakpoints and variables that are not fully qualified are to be found in the specified module (external procedure).

In an unattended batch test, use the PSEUDO command to qualify the specified module. Any commands issued after the PSEUDO command are executed in relation to the specified module until a TEST, INTERCEPT, SOURCE, or another PSEUDO command is encountered.

A record of the PSEUDO command is written to the session log.

Breakpoints are not automatically set in the module displayed by the PSEUDO command. You must set breakpoints at locations where you want execution to stop.

Because there are a multitude of assembler images which could be generated to match the specified machine code, the initial image is not likely to match exactly the intent of the original source code. There could be areas of the program that were marked as instructions in the middle of data areas. Before using the GO 1 command, review the PSEUDO output. Any data areas that have been misinterpreted as instructions should be marked as data with the SET DATA command. (See SET for more information.) Such corrections are necessary because Code Debug will, at times, cause breakpoints to be set on all instructions in the program, especially when doing single instruction stepping. If a data item is marked as an instruction, its value could be changed when the breakpoint is set.

If you need to step an instruction that has been misinterpreted as data, use the LINE OFFSET command to display the offset of the instruction within the module. (See LINE for more information.) Then re-enter the PSEUDO command with the module-name and offset parameters to correct the pseudo-assembler for the instruction at the specified offset.

Input

image2021-2-16_13-56-47.png

The following are the parameter descriptions for the PSEUDOSOURCE command:

module-name

The name of the module, external procedure, entry point, or CSECT to be displayed on the Source screen.

offset

The offset into an already-processed module where Code Debug will begin an analysis to reconstruct the pseudo-assembler image. This offset will normally reflect an incorrectly disassembled instruction or data area.

Usage Notes

ALL Languages

  1. The first time a PSEUDO command is issued for a module, Code Debug TSO is positioned at the beginning of the module.
  2. If a second request for the same module/procedure is made at the same breakpoint and a GO command has not been entered, Code Debug TSO redisplays the last screen shown in that module.
  3. When testing in interactive mode, LOCATE * always returns to the point of origin; that is, the place where execution was suspended in the original source file.
  4. When a source image has been created with the PSEUDO command, you can redisplay that program or CSECT by entering either the SOURCE or the PSEUDO command.
  5. Typing over the program name in the header area serves the same purpose as using the SOURCE command.
  6. When multiple copies of the module exist, you must uniquely qualify the load module and CSECT name/program name combination. For example, PSEUDO LOADM1::CSECTA displays the source for CSECT CSECTA in load module LOADM1, whereas PSEUDO LOADM2::CSECTA displays the source for CSECT CSECTA in load module LOADM2. See to Command Qualification Rules for additional information.
  7. When you enter the PSEUDO command with a module name and offset (in order to reconstruct the pseudo-assembler view), execution cannot be currently suspended in the module being specified.
  8. Code Coverage statistics are not collected for modules with generated pseudo-assembler source.
  9. Breakpoints in a generated pseudo-assembler view are not retained across IMS/BTS tests.

Examples

ALL Languages

  1. To display the pseudo-assembler source of module TRIRPT while stopped in module TRIMAIN, enter:
       PSEUDO TRIRPT
    The program name TRIRPT and load module name TRIMAIN are displayed in the Program and Module fields, respectively, to identify the program and module being displayed. The program name (TRIRPT) establishes the default context or qualification for data areas, labels, offsets, or addresses when used with commands.
    Entering a LOCATE * command causes program TRIMAIN in module TRIMAIN to be redisplayed with a highlighted arrow indicating the line where execution was suspended.
    BEFORE TRIMAIN is displayed on the execution status line indicating the active before breakpoint at CSECT TRIMAIN in module TRIMAIN.
  2. To display the sourceless image for module TRITST, enter the following:
       PSEUDO TRITST
  3. To have Code Debug TSO begin re-analysis of the pseudo-assembly process at offset 1D8 in module TRITST, enter the following:
       PS TRITST 1D8

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*