|
I want to put a job into debug mode, call a
trace handling pgm on each instruction, use MATINAT to materialize the operands
of the instruction.
All this is done in order to test if an
instruction is referencing an address range.
To start the trace:
StrDbg PgmName
AddTrc Stmt(*AllInst)
Pgm(TraceHandlePgm)
In the trace handing pgm:
MATINVS to materialize the
invocation stack to determine the invocation nbr of the traced pgm.
MATINAT pRcv, (
Invocation nbr, Insn ) to materialize the instruction.
Retrieve the data object
addressability of each operand of the instruction.
Test the space pointer to the
data object for the address range being monitored for.
This works while debugging an interactive
job.
The problem is when STRSRVJOB is used to debug a
batch job. The trace handling pgm is called in the job that issued the
STRSRVJOB cmd. MATINVS accepts a ptr to the PCS ( process comm space ) of
the job whose stack is to be materialized. So it can materialize the stack
of the job being debugged. ( no thanks to StrSrvJob though ).
But MATINAT does not take a pcs pointer. It
materializes the instruction of the job that runs the MATINAT stmt, not of the
job being serviced. grrr.
Am I am wrong on this? Can the instruction
of a job being serviced be materialized by the servicing job?
Thanks,
Steve Richter
|
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.