Trap Diagnostic Facility is a cutting-edge software diagnostic tool for use with the IBM z/OS operating system. It uses the hardware TRAP facilities and z/OS system services to dynamically manage the application being debugged. TDF was designed from the beginning for debugging complex multi-tasking, server-oriented software environments. Its dual-mode debugging support provides both interactive and non-interactive debugging.
The base TDF product consists of the TDF Server which runs as a started task address space and the ISPF User Interface component which provides a complete interactive debugging facility. The non-interactive trace component, called the High Speed Dynamic Trace facility, is an add-on feature to the base product. The non-interactive component requires the base components.
Benefits of TDF:
|Assists in resolving errors in complex system software utilizing multi-tasking and multi-address space environments as well as batch programs and ISPF applications
|Use of the hardware Trap facility rather than software recovery exits allows seamless debugging of the application even across multiple definitions of any type recovery exits
|User recovery exits can be easily debugged the same as any other code
|No user program code changes are required for debugging which eliminates the chance of errors being introduced into the code for the debugging process
|Dual-mode debugging supports both interactive and non-interactive debug facilities
|The control structures and code used to provide the debug process are placed in non-user key storage and outside the target address space to isolate the debugging process from the user code being debugged so the user programs are not influenced by the presents of the debugger
|In releases of z/OS which support the execution of programs in 64-bit storage, much of the TDF code is relocated above the bar to reduce the amount of common storage required for its execution
High Speed Dynamic Trace:
|This feature of TDF provides the non-interactive trace component. With the trace requirements definied prior to the start of the trace, the trace runs at full machine speed while still collecting diagnostic data.
|Multiple tasks of an address space or even tasks from multiple address spaces can be defined as a single diagnostic unit, called a Group, so that the High Speed Dynamic Trace facility can operate on everything needed to diagnose complex multi-task interactions.
|Once the trace begins, only a small amount of overhead exists because of the data collection (storage to storage data copy) and instruction pass-through so the user application runs at almost native machine speed. There are no additional services required for TDF so even locked code can be traced.
|User defined trace points and data collection specifications are used to gather the required data in non-interactive mode for viewing at a later time, or place.
|The Traceset defines the location of a trace point, the trace ID of that trace point and the data areas to be collected at that point.
|The Trace ID defines a numeric id, a Trace Class and the registers to be captured at the associated trace point. Registers can be the PSW, general, access, floating point and control registers. A Trace ID can be used by one or more Tracesets.
|The Map defines an area and lengh in storage of data to be collected at a trace point. The storage address is based upon a general purpose register that points to the area at the trace point execution. A Map can be used by one or more Tracesets and a Traceset can reference multiple Maps.
|The Deferred Trace Apply support allows trace points to be defined at code locations that are not resident in storage at the time the trace is started.
|Developed trace definitions can be saved to a DASD data set and recalled for use at a later time.
|The Traceset and Map definitions can be specified using program instruction labels and user data structure field names so that developed traces can be used with multiple versions of the application or with code that is in active development. Supply the appropriate version of the assembler's ADATA for the code to be traced and the trace point locations and data structure mapping is automatically adjusted before the trace begins.
|The collected data is asynchronously written to a DASD trace data set. The trace data is viewed using a TDF ISPF application which provides data filtering and search capabilities to help resolve software issues.
|Allows detail inspection of storage, registers and environment conditions at the single instruction level as well as allowing the dynamic alteration of the current conditions
|Supports defining specific sections of code to be single stepped making tracing of code ranges very quick and simple
|Persistent or non-persistent user breakpoints can be set to stop program execution at desired points. Trigger breakpoints set a user breakpoint after the execution of a specific code path. System breakpoints are automatically set by TDF at important processing points when requested.
|User program source statements are displayed while instruction tracing and storage displays can be formatted to user data structures defined by DSECTs in the program source
|The Symbol facility allows user defined symbolic reference to storage locations
|The Identify facility allows the identification of code that requires special handling such as naming dynamically built code or indicating shared code that is to be debugged
|The Dynamic Hook facility allows the dynamic debugging of an address space that was started without the TDF environment. Persistent or non-persistent "hooks" can be inserted into private area or common area code and can be restricted to specified jobs and tasks. When a hook point is executed, the debug environment is dynamically activated and the triggering task can be debugged. Dynamic Hooking can be activated by the execution of specific instruction locations or by specific TCB.
|The Peek facility allows storage within non-debugged address spaces to be displayed and altered. It can also be used to set dynamic hooks to trigger TDF processing in existings tasks.
|The ISPF debug facility allows debugging of ISPF applications using a single terminal session
|The debug session can be recorded for later replay and for use in non-interactive traces
|View the TDF Product Fact Sheet (pdf)
|Request a copy of our White Paper titled Why You Need a Modern z/OS Debugger (web form)
|View a Powerpoint presentation with links to short videos (ppsx)
View a slow paced Tutorial video on TDF Use
(45 minutes) (mp4)
View short video of setup, execution and output review of the High Speed Dynamic Trace facility of TDF. Only 9.5 minutes. The following demo video contains more detail but is much longer.
(9 minutes) (mp4)
View recording of a live demo of the High Speed Dynamic Trace facility of TDF
(54 minutes) (mp4)
Download a trial installation of the software!
A copy of the software installation material can be downloaded from our Download Library.
Submit an activation key request!
Complete the TDF Product Activation Key Request form to receive the activation key for this product. It will not run on your computer without the activation key.
|Follow us on Twitter Like our page on Facebook