2. TDF Methodology
• Traditional Debuggers use recovery
(ESTAEX or FRR) requiring the
application to modify its recovery strategy
• TDF uses the TRAP instruction and does
not require modifications to application
recovery strategy
3. TDF Methodoloy
• One server required per LPAR and only
one server can be active per LPAR
• The server creates
– System PC routines callable from any
address space
– Shared (64 bit) memory object for
communication
– API to connect/disconnect from debugging
session
4. TDF User Interface
In the following screen example, the TDF
server has been started and a test program,
job TDFHOOK and program TSTTDFHK
has been started with a TDFHOOK call. In
this example, the test program is selected to
start a UI session.
5.
6. TDF User Interface (UI) Flow
When a suspended task is selected,
•The TDF UI PCs to server to connect to the
suspended task
•TDF API connects the task so that no other
UI can connect to it and replies with the
current program state
•TDF UI display the state as follows:
7.
8. TDF User Interface (UI)
From the initial connection state screen, you
can issue such as a D command to display
application storage
9.
10. TDF User Interface
• Large display requests (more data than
can fit in a screen) are broken into multiple
requests.
• If an abend occurs, the request is ended
• If any command is entered, the request is
ended
• At the end of a screen, if more data is
required, press enter for the next screen
until the request has completed
11. TDF User Interface
You can also use the T command to step
through program execution. The T display
automatically shows the current program
state. It highlights modifications to registers
and branching instructions as follows:
12.
13. TDF UI Methodology
The final display mode is scrolling. In this
mode, all command results are displayed in
the sequence issued.
The following screens demonstrate scrolling.
14.
15. TDF UI Methodology
You can terminate a UI session as follows:
•Press PF3. The API disconnects the UI and
places the application back in the
suspended queue.
•Enter the E command to disconnect and
release the application. It will continue
uninterrupted execution.