Rational Developer for System z, Version 7.6

Contents

About this document
Who might use this document
Accessing z/OS licensed documents on the Internet
Using LookAt to look up message explanations
How this document is organized
Terms used in this document
How to read syntax diagrams
Symbols
Syntax items
Syntax examples
How to send your comments
Summary of changes
Changes introduced with the PTF for APAR PK86668
Changes introduced with the PTF for APAR PK74749
Changes introduced with the PTF for APAR PK72833
Changes introduced with Debug Tool V9.1
Getting started with Debug Tool
Debug Tool: overview
Debug Tool interfaces
Batch mode
Full-screen mode
Full-screen mode through a VTAM terminal
Remote debug mode
Debug Tool Utilities
Debug Tool Utilities: Job Card
Debug Tool Utilities: Program Preparation
Debug Tool Utilities: Debug Tool Setup File
Debug Tool Utilities: Code Coverage
Debug Tool Utilities: IMS TM Setup
Debug Tool Utilities: Load Module Analyzer
Debug Tool Utilities: Debug Tool User Exit Data Set
Debug Tool Utilities: Other IBM Problem Determination Tools
Debug Tool Utilities: JCL for Batch Debugging
Starting Debug Tool Utilities
Debugging a program in full-screen mode: introduction
Compiling or assembling your program with the proper compiler options
Starting Debug Tool
The Debug Tool full screen interface
Stepping through a program
Running your program to a specific line
Setting a breakpoint
Displaying the value of a variable
Displaying memory through the Memory window
Changing the value of a variable
Skipping a breakpoint
Clearing a breakpoint
Recording and replaying statements
Stopping Debug Tool
Preparing your program for debugging
Planning your debug session
Choosing compiler options for debugging
Choosing TEST or NOTEST compiler suboptions for COBOL programs
Choosing TEST or NOTEST compiler suboptions for PL/I programs
Choosing TEST or DEBUG compiler suboptions for C programs
Choosing TEST or DEBUG compiler suboptions for C++ programs
Understanding how hooks work and why you need them
Understanding what symbol tables do and why saving them elsewhere can make your application smaller
Choosing a debugging mode
Choosing a method or methods for starting Debug Tool
Choosing how to debug old COBOL programs
Updating your processes so you can debug programs with Debug Tool
Update your compilation, assembly, and linking process
Compiling your program without using Debug Tool Utilities
Compiling your program by using Debug Tool Utilities
Compiling a Enterprise PL/I program on an HFS file system
Compiling your C program with c89 or c++
Compiling a C program on an HFS file system
Compiling a C++ program on an HFS file system
Update your library and promotion process
Make the modifications necessary to implement your preferred method of starting Debug Tool
Preparing a non-Language Environment COBOL program
Compiling your OS/VS COBOL program
Compiling your VS COBOL II program
Creating the EQALANGX file for non-Language Environment COBOL programs
Link-editing your program
Preparing an assembler program
Before you assemble your program
Assembling your program
Creating the EQALANGX file for an assembler program
Assembling your program and creating EQALANGX
Link-editing your program
Preparing a DB2 program
Processing SQL statements
Linking DB2 programs for debugging
Binding DB2 programs for debugging
Preparing a DB2 stored procedures program
Preparing a CICS program
Link-editing EQADCCXT into your program
Creating and storing a DTCN profile
Displaying a list of active DTCN profiles and managing DTCN profiles
Description of fields on the DTCN Primary Menu screen
Description of fields on the DTCN Menu 2 screen
Description of fields on the DTCN Advanced Options screen
Creating and storing debugging profiles with CADP
Starting Debug Tool for non-Language Environment programs under CICS
Passing runtime parameters to Debug Tool for non-Language Environment programs under CICS
Preparing an IMS program
Starting Debug Tool under IMS by using CEEUOPT or CEEROPT
Managing runtime options for IMSplex users by using Debug Tool Utilities
Setting up the DFSBXITA user exit routine
Specifying the TEST runtime options through the Language Environment user exit
Editing the source code of CEEBXITA
Modifying the naming pattern
Modifying the message display level
Comparing the two methods of linking CEEBXITA
Linking the CEEBXITA user exit into your application program
Linking the CEEBXITA user exit into a private copy of a Language Environment runtime module
Creating and managing the TEST runtime options data set
Starting Debug Tool
Writing the TEST run-time option string
Special considerations while using the TEST run-time option
Defining TEST suboptions in your program
Suboptions and NOTEST
Implicit breakpoints
Primary commands file and USE file
Running in batch mode
Starting Debug Tool at different points
Session log
Precedence of Language Environment run-time options
Example: TEST run-time options
Specifying additional run-time options with COBOL II and PL/I programs
Specifying the STORAGE run-time option
Specifying the TRAP(ON) run-time option
Specifying TEST run-time option with #pragma runopts in C and C++
Starting Debug Tool from the Debug Tool Utilities
Creating the setup file
Editing an existing setup file
Copying information into a setup file from an existing JCL
Entering file allocation statements, run-time options, and program parameters
Saving your setup file
Starting your program
Starting Debug Tool from a program
Starting Debug Tool with CEETEST
Additional notes about starting Debug Tool with CEETEST
Example: using CEETEST to start Debug Tool from C/C++
Example: using CEETEST to start Debug Tool from COBOL
Example: using CEETEST to start Debug Tool from PL/I
Starting Debug Tool with PLITEST
Starting Debug Tool with the __ctest() function
Starting Debug Tool for batch or TSO programs
Starting Debug Tool for programs that start in Language Environment
Example: Allocating Debug Tool load library data set
Example: Allocating Debug Tool files
Starting Debug Tool in batch mode
Starting Debug Tool for programs that start outside of Language Environment
Passing parameters to EQANMDBG
Starting Debug Tool under CICS
Comparison of methods for starting Debug Tool under CICS
Starting Debug Tool under CICS by using DTCN
Ending a CICS debugging session that was started by DTCN
Example: How Debug Tool chooses a CICS program for debugging
Starting Debug Tool for CICS programs by using CADP
Starting Debug Tool under CICS by using CEEUOPT
Starting Debug Tool under CICS by using compiler directives
Starting a full-screen debug session
Starting Debug Tool in other environments
Starting a debugging session in full-screen mode through a VTAM terminal
Starting Debug Tool from DB2 stored procedures
Debugging your programs in full-screen mode
Using full-screen mode: overview
Debug Tool session panel
Session panel header
Source window
Monitor window
Log window
Memory window
Creating a preferences file
Displaying the source
Changing which file appears in the Source window
Entering commands on the session panel
Order in which Debug Tool accepts commands from the session panel
Using the session panel command line
Issuing system commands
Entering prefix commands on specific lines or statements
Entering multiple commands in the Memory window
Using commands that are sensitive to the cursor position
Using Program Function (PF) keys to enter commands
Initial PF key settings
Retrieving previous commands
Composing commands from lines in the Log and Source windows
Navigating through Debug Tool windows
Moving the cursor between windows
Switching between the Memory window and Log window
Scrolling through the physical windows
Enlarging a physical window
Scrolling to a particular line number
Finding a string in a window
Displaying the line at which execution halted
Navigating through the Memory window
Creating a commands file
Recording your debug session in a log file
Creating the log file
Recording how many times each source line runs
Recording the breakpoints encountered
Setting breakpoints to halt your program at a line
Setting breakpoints in a load module that is not loaded or in a program that is not active
Controlling how Debug Tool handles warnings about invalid data in comparisons
Stepping through or running your program
Recording and replaying statements
Saving and restoring settings, breakpoints, and monitor specifications
Saving and restoring automatically
Disabling the automatic saving and restoring of breakpoints, monitors, and settings
Restoring manually
Performance considerations in multi-enclave environments
Displaying and monitoring the value of a variable
One-time display of the value of variables
Adding variables to the Monitor window
Displaying the data type of a variable in the Monitor window
Replacing a variable in the Monitor window with another variable
Adding variables to the Monitor window automatically
How Debug Tool handles characters that cannot be displayed in their declared data type
Modifying characters that cannot be displayed in their declared data type
Formatting values in the Monitor window
Displaying values in hexadecimal format
Monitoring the value of variables in hexadecimal format
Modifying variables or storage by using a command
Modifying variables or storage by typing over an existing value
Opening and closing the Monitor window
Displaying and modifying memory through the Memory window
Modifying memory through the hexadecimal data area
Managing file allocations
Displaying error numbers for messages in the Log window
Displaying a list of compile units known to Debug Tool
Requesting an attention interrupt during interactive sessions
Ending a full-screen debug session
Debugging a COBOL program in full-screen mode
Example: sample COBOL program for debugging
Halting when certain routines are called in COBOL
Identifying the statement where your COBOL program has stopped
Modifying the value of a COBOL variable
Halting on a COBOL line only if a condition is true
Debugging COBOL when only a few parts are compiled with TEST
Capturing COBOL I/O to the system console
Displaying raw storage in COBOL
Getting a COBOL routine traceback
Tracing the run-time path for COBOL code compiled with TEST
Generating a COBOL run-time paragraph trace
Finding unexpected storage overwrite errors in COBOL
Halting before calling an invalid program in COBOL
Debugging a non-Language Environment COBOL program in full-screen mode
Example: sample non-Language Environment COBOL program for debugging
Defining a compilation unit as non-Language Environment COBOL and loading debug information
Defining a compilation unit in a different load module as non-Language Environment COBOL
Halting when certain non-Language Environment COBOL programs are called
Identifying the statement where your non-Language Environment COBOL program has stopped
Displaying and modifying the value of non-Language Environment COBOL variables or storage
Halting on a line in non-Language Environment COBOL only if a condition is true
Debugging non-Language Environment COBOL when debug information is only available for a few parts
Getting a non-Language Environment COBOL program traceback
Finding unexpected storage overwrite errors in non-Language Environment COBOL
Debugging a PL/I program in full-screen mode
Example: sample PL/I program for debugging
Halting when certain PL/I functions are called
Identifying the statement where your PL/I program has stopped
Modifying the value of a PL/I variable
Halting on a PL/I line only if a condition is true
Debugging PL/I when only a few parts are compiled with TEST
Displaying raw storage in PL/I
Getting a PL/I function traceback
Tracing the run-time path for PL/I code compiled with TEST
Finding unexpected storage overwrite errors in PL/I
Halting before calling an undefined program in PL/I
Debugging a C program in full-screen mode
Example: sample C program for debugging
Halting when certain functions are called in C
Modifying the value of a C variable
Halting on a line in C only if a condition is true
Debugging C when only a few parts are compiled with TEST
Capturing C output to stdout
Capturing C input to stdin
Calling a C function from Debug Tool
Displaying raw storage in C
Debugging a C DLL
Getting a function traceback in C
Tracing the run-time path for C code compiled with TEST
Finding unexpected storage overwrite errors in C
Finding uninitialized storage errors in C
Halting before calling a NULL C function
Debugging a C++ program in full-screen mode
Example: sample C++ program for debugging
Halting when certain functions are called in C++
Modifying the value of a C++ variable
Halting on a line in C++ only if a condition is true
Viewing and modifying data members of the this pointer in C++
Debugging C++ when only a few parts are compiled with TEST
Capturing C++ output to stdout
Capturing C++ input to stdin
Calling a C++ function from Debug Tool
Displaying raw storage in C++
Debugging a C++ DLL
Getting a function traceback in C++
Tracing the run-time path for C++ code compiled with TEST
Finding unexpected storage overwrite errors in C++
Finding uninitialized storage errors in C++
Halting before calling a NULL C++ function
Debugging an assembler program in full-screen mode
Example: sample assembler program for debugging
Defining a compilation unit as assembler and loading debug data
Deferred LDDs
Re-appearance of an assembler CU
Multiple compilation units in a single assembly
Loading debug data from multiple CSECTs in a single assembly using one LDD command
Loading debug data from multiple CSECTs in a single assembly using separate LDD commands
Debugging multiple CSECTs in a single assembly after the debug data is loaded
Halting when certain assembler routines are called
Identifying the statement where your assembler program has stopped
Displaying and modifying the value of assembler variables or storage
Converting a hexadecimal address to a symbolic address
Halting on a line in assembler only if a condition is true
Getting an assembler routine traceback
Finding unexpected storage overwrite errors in assembler
Customizing your full-screen session
Defining PF keys
Defining a symbol for commands or other strings
Customizing the layout of physical windows on the session panel
Opening and closing physical windows
Resizing physical windows
Zooming a window to occupy the whole screen
Customizing session panel colors
Customizing profile settings
Saving customized settings in a preferences file
Saving and restoring customizations between Debug Tool sessions
Debugging your programs by using Debug Tool commands
Entering Debug Tool commands
Using uppercase, lowercase, and DBCS in Debug Tool commands
DBCS
Character case and DBCS in C and C++
Character case in COBOL and PL/I
Abbreviating Debug Tool keywords
Entering multiline commands in full-screen
Entering multiline commands in a commands file
Entering multiline commands without continuation
Using blanks in Debug Tool commands
Entering comments in Debug Tool commands
Using constants in Debug Tool commands
Getting online help for Debug Tool command syntax
Debugging COBOL programs
Debug Tool commands that resemble COBOL statements
COBOL command format
COBOL compiler options in effect for Debug Tool commands
COBOL reserved keywords
Using COBOL variables with Debug Tool
Accessing COBOL variables
Assigning values to COBOL variables
Example: assigning values to COBOL variables
Displaying values of COBOL variables
Using DBCS characters in COBOL
%PATHCODE values for COBOL
Declaring session variables in COBOL
Debug Tool evaluation of COBOL expressions
Displaying the results of COBOL expression evaluation
Using constants in COBOL expressions
Using Debug Tool functions with COBOL
Using %HEX with COBOL
Using the %STORAGE function with COBOL
Qualifying variables and changing the point of view in COBOL
Qualifying variables in COBOL
Changing the point of view in COBOL
Considerations when debugging a COBOL class
Debugging VS COBOL II programs
Finding the listing of a VS COBOL II program
Debugging a non-Language Environment COBOL program
Loading a non-Language Environment COBOL program's debug information
Debug Tool session panel while debugging a non-Language Environment COBOL program
Restrictions for debugging a non-Language Environment COBOL program
%PATHCODE values for non-Language Environment COBOL programs
Restrictions for debugging non-Language Environment programs
Debugging PL/I programs
Debug Tool subset of PL/I commands
PL/I language statements
%PATHCODE values for PL/I
PL/I conditions and condition handling
Entering commands in PL/I DBCS freeform format
Initializing Debug Tool for PL/I programs when TEST(ERROR, ...) run-time option is in effect
Debug Tool enhancements to LIST STORAGE PL/I command
PL/I support for Debug Tool session variables
Accessing PL/I program variables
Accessing PL/I structures
Debug Tool evaluation of PL/I expressions
Supported PL/I built-in functions
Using SET WARNING PL/I command with built-in functions
Unsupported PL/I language elements
Debugging OS PL/I programs
Restrictions while debugging Enterprise PL/I programs
Debugging C and C++ programs
Debug Tool commands that resemble C and C++ commands
Using C and C++ variables with Debug Tool
Accessing C and C++ program variables
Displaying values of C and C++ variables or expressions
Assigning values to C and C++ variables
%PATHCODE values for C and C++
Declaring session variables with C and C++
C and C++ expressions
Calling C and C++ functions from Debug Tool
C reserved keywords
C operators and operands
Language Environment conditions and their C and C++ equivalents
Debug Tool evaluation of C and C++ expressions
Intercepting files when debugging C and C++ programs
Scope of objects in C and C++
Storage classes in C and C++
Blocks and block identifiers for C
Blocks and block identifiers for C++
Example: referencing variables and setting breakpoints in C and C++ blocks
Scope and visibility of objects in C and C++ programs
Blocks and block identifiers in C and C++ programs
Displaying environmental information for C and C++ programs
Qualifying variables and changing the point of view in C and C++
Qualifying variables in C and C++
Changing the point of view in C and C++
Example: using qualification in C
Stepping through C++ programs
Setting breakpoints in C++
Setting breakpoints in C++ using AT ENTRY/EXIT
Setting breakpoints in C++ using AT CALL
Examining C++ objects
Example: displaying attributes of C++ objects
Monitoring storage in C++
Example: monitoring and modifying registers and storage in C
Debugging an assembler program
The SET ASSEMBLER and SET DISASSEMBLY commands
Loading an assembler program's debug information
Debug Tool session panel while debugging an assembler program
%PATHCODE values for assembler programs
Using the STANDARD and NOMACGEN view
Restrictions for debugging an assembler program
Restrictions for debugging a Language Environment assembler MAIN program
Restrictions on setting breakpoints in the prologue of Language Environment assembler programs
Restrictions for debugging non-Language Environment programs
Restrictions for debugging assembler code that uses instructions as data
Restrictions for debugging self-modifying assembler code
Debugging a disassembled program
The SET ASSEMBLER and SET DISASSEMBLY commands
Capabilities of the disassembly view
Starting the disassembly view
The disassembly view
Performing single-step operations in the disassembly view
Setting breakpoints in the disassembly view
Restrictions for debugging self-modifying code
Displaying and modifying registers in the disassembly view
Displaying and modifying storage in the disassembly view
Changing the program displayed in the disassembly view
Restrictions for the disassembly view
Debugging in different environments
Debugging DB2 programs
Debugging DB2 programs in batch mode
Debugging DB2 programs in full-screen mode
Debugging DB2 stored procedures
Resolving some common problems while debugging DB2 stored procedures
Debugging IMS programs
Debugging IMS batch programs interactively by running BTS in TSO foreground
Debugging IMS batch programs in batch mode
Debugging non-Language Environment IMS MPPs
Verifying configuration and starting a region for non-Language Environment IMS MPPs
Choosing an interface and gathering information for non-Language Environment IMS MPPs
Running the EQASET transaction for non-Language Environment IMS MPPs
Creating setup file for your IMS program by using Debug Tool Utilities
Debugging CICS programs
Displaying the contents of channels and containers
Controlling pattern-match breakpoints with the DISABLE and ENABLE commands
Preventing Debug Tool from stopping at EXEC CICS RETURN
Early detection of CICS storage violations
Saving settings while debugging a pseudo-conversational CICS program
Saving and restoring breakpoints and monitor specifications for CICS programs
Restrictions when debugging under CICS
Accessing CICS resources during a debugging session
Accessing CICS storage before or after a debugging session
Debugging ISPF applications
Debugging programs in a production environment
Fine-tuning your programs with Debug Tool
Removing hooks
Removing statement and symbol tables
Debugging without hooks, statement tables, and symbol tables
Debugging optimized COBOL programs
Debugging UNIX System Services programs
Debugging MVS POSIX programs
Debugging non-Language Environment programs
Debugging exclusively non-Language Environment programs
Debugging MVS batch or TSO non-Language Environment initial programs
Debugging CICS non-Language Environment assembler or non-Language Environment COBOL initial programs
Debugging complex applications
Debugging multilanguage applications
Debug Tool evaluation of HLL expressions
Debug Tool interpretation of HLL variables and constants
HLL variables
HLL constants
Debug Tool commands that resemble HLL commands
Qualifying variables and changing the point of view
Qualifying variables
Changing the point of view
Handling conditions and exceptions in Debug Tool
Handling conditions in Debug Tool
Handling exceptions within expressions (C and C++ and PL/I only)
Debugging multilanguage applications
Debugging an application fully supported by Language Environment
Using session variables across different programming languages
Creating a commands file that can be used across different programming languages
Coexistence with other debuggers
Coexistence with unsupported HLL modules
Debugging multithreading programs
Restrictions when debugging multithreading applications
Debugging across multiple processes and enclaves
Starting Debug Tool within an enclave
Viewing Debug Tool windows across multiple enclaves
Ending a Debug Tool session within multiple enclaves
Using Debug Tool commands within multiple enclaves
Debugging a multiple-enclave interlanguage communication (ILC) application
Solving problems in complex applications
Debugging programs loaded from library lookaside (LLA)
Debugging user programs that use system prefixed names
Displaying system prefixes
Debugging programs with names similar to system components
Debugging programs containing data-only modules
Optimizing the debugging of large applications
Displaying current NAMES settings
Using EQAOPTS to implement NAMES commands
Appendixes
Appendix A. Data sets used by Debug Tool
Appendix B. How does Debug Tool locate source, listing, or separate debug files?
How does Debug Tool locate source and listing files?
How does Debug Tool locate COBOL and PL/I separate debug file files?
How does Debug Tool locate EQALANGX files
How does Debug Tool locate the C/C++ source file or the .dbg file
Appendix C. Examples: Preparing programs and modifying setup files with Debug Tool Utilities
Creating personal data sets
Starting Debug Tool Utilities
Compiling or assembling your program by using Debug Tool Utilities
Modifying and using a setup file
Run the program in foreground
Run the program in batch
Appendix D. Notes on debugging in batch mode
Appendix E. Notes on debugging in remote debug mode
Tip on monitoring variables in optimized COBOL program
Appendix F. Displaying and modifying CICS storage with DTST
Starting DTST
Examples of starting DTST
Modifying storage through the DTST storage window
Navigating through the DTST storage window
DTST storage window
Navigation keys for help screens
Syntax of the DTST transaction
Examples
Appendix G. Debug Tool Load Module Analyzer
Choosing a method to start Load Module Analyzer
Starting the Load Module Analyzer by using JCL
Starting the Load Module Analyzer by using Debug Tool Utilities
Description of the JCL statements to use with Load Module Analyzer
Description of DD names used by Load Module Analyzer
Description of parameters used by Load Module Analyzer
Description of EQASYSPF file format
Description of EQAPGMNM file format
Description of program output created by Load Module Analyzer
Description of output contents created by Load Module Analyzer
Example: Output created by Load Module Analyzer for an OS/VS COBOL load module
Appendix H. Accessibility
Using assistive technologies
Keyboard navigation of the user interface
Accessibility of this document
Appendix I. Support resources and problem solving information
Searching IBM support Web sites for a solution
Searching the information center
Searching product support documents
IBM Support Assistant
Obtaining fixes
Receiving support updates through e-mail notification
Receiving support updates through RSS feeds
If you need to contact IBM Software Support
Determining the business impact
Describing problems and gathering information
Submitting problems
Notices
Copyright license
Programming interface information
Trademarks and service marks
Bibliography
Debug Tool publications
Other sources of information
Related publications
Softcopy publications
Glossary
Index

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)