On the IBM VM web site, the download/packages section has the
latest XASTOR which now works for 64-bit z/VM 4.1 & 4.2
systems. (The guests must be 31-bit though.) I have written a
macro that uses XASTOR that does the following and can be
found at http://penguinvm.princeton.edu/programs (lxproc.xastor
is the macro; lxPROC.pdf is the documentation). Thanks go to
the XASTOR author Mike Tanzer.
Name - LXPROC.
Function - Map a Process within a Linux Virtual Machine
Operation - The user specifies the address of a process'
task structure (or '*' for the "current"
active process and the name of the virtual
machine running Linux.
The task_structure of the desired process is
located and from that the Segment Table Orig-
in (so that XASTOR can map 3rd level virtual
storage), the User Context (where register
information is held, and the current stack
frame is obtained.
A dump of the registers and the memory map
for the process is performed and placed in
a file called '<LINUX GUEST> <PROCESS ID> A'.
The user is then able to use the facilities
of XASTOR to inspect the virtual storage of
the process.
Limits - The method of locating the "current" process
is to get the address at 0xc40 and subtract
8K. I do not allow for prefix pages such that
this will only work for processes on CPU 0.
The guest must be running in 31-bit mode as
there is no support in XASTOR (currently) for
translating 64-bit addresses. Similarly,
on a zVM system, all data needs to reside
"under the bar".
If Linux has swapped a page of the process'
that you are interested in you will not be
able to inspect it. (Given XASTOR has the
ability to read blocks from disk and is able
to locate the necessary control blocks, this
limitation could be removed.)