java.lang.Object
com.ibm.dtfj.corereaders.zos.le.Caa
This class represents the LE view of an MVS
Tcb
. Caa stands for
"Common Anchor Area" and this structure is the starting point for all the other LE
structures. For programs written in C, this is the most useful thread view because it
gives access to the C stack.
The layout of the CAA control block is documented in the zOS Language Environment Debugging Guide GA22-7560-05-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionlong
address()
Returns the address of this Caa.int
Returns the stack direction, either 0 (up) or 1 (down).long
Returns the address of the dummy dsa.long
Returns the address of the enclave data block.long
Returns the address of the hcom.int
Returns the CEL level identifier.long
Returns the address of the region control block.long
Returns the address of the storage manager control block.long
Returns the address of the thread value block anchorstatic Caa[]
getCaas
(AddressSpace space) Returns an array containing all of the Caas in the givenAddressSpace
Get the current (ie top) stack frame for this thread.getEdb()
Returns the EDB (Enclave Data Block) for this Caa.int
Get the pthread id for this thread.Returns theRegisterSet
for a failed thread.getTcb()
Returns the Tcb we are associated with.boolean
Returns true if this thread failed (ie crashed, abended, has gone to meet its maker).long
pthread_getspecific_d8_np
(long key) Searches thread value blocks for key matching the input key and returns the thread specific data associated with the specified key for the current thread.space()
Returns the AddressSpace we belong toReturns a string indicating where the registers were found.
-
Constructor Details
-
Caa
Create a new Caa from the givenTcb
. Note that not all Tcbs have a Caa associated with them.- Throws:
CaaNotFound
- if there is no Caa associated with this Tcb.
-
-
Method Details
-
getCaas
Returns an array containing all of the Caas in the givenAddressSpace
-
whereFound
Returns a string indicating where the registers were found. This is mainly for debugging purposes. -
getCurrentFrame
Get the current (ie top) stack frame for this thread.- Returns:
- the current stack frame or null if there is no stack
-
getPThreadID
Get the pthread id for this thread. This is the top half of the CEECAATHDID field in the CAA- Throws:
IOException
-
hasFailed
public boolean hasFailed()Returns true if this thread failed (ie crashed, abended, has gone to meet its maker). -
getRegisterSet
Returns theRegisterSet
for a failed thread. This will return null if the thread did not fail. In general, registers are only available (or at least only useful) for a failed thread. -
getEdb
Returns the EDB (Enclave Data Block) for this Caa. -
address
public long address()Returns the address of this Caa. -
space
Returns the AddressSpace we belong to -
getTcb
Returns the Tcb we are associated with. -
ceecaalevel
Returns the CEL level identifier.- Throws:
IOException
- if an error occurred reading from the address space
-
ceecaa_stackdirection
Returns the stack direction, either 0 (up) or 1 (down). Should only be called if the LE level is 13 or greater.- Throws:
IOException
- if an error occurred reading from the address space
-
ceecaasmcb
Returns the address of the storage manager control block.- Throws:
IOException
- if an error occurred reading from the address space
-
ceecaarcb
Returns the address of the region control block.- Throws:
IOException
- if an error occurred reading from the address space
-
ceecaavba
Returns the address of the thread value block anchor- Throws:
IOException
- if an error occurred reading from the address space
-
pthread_getspecific_d8_np
Searches thread value blocks for key matching the input key and returns the thread specific data associated with the specified key for the current thread. If no thread specific data has been set for key, Zero is returned.- Throws:
IOException
-
ceecaaddsa
public long ceecaaddsa()Returns the address of the dummy dsa. This is used to indicate the bottom of the stack. -
ceecaaedb
Returns the address of the enclave data block.- Throws:
IOException
- if an error occurred reading from the address space
-
ceecaaerrcm
Returns the address of the hcom.- Throws:
IOException
- if an error occurred reading from the address space
-