Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 367760 - Add address space and process data to DTFJ parsing
Summary: Add address space and process data to DTFJ parsing
Status: RESOLVED FIXED
Alias: None
Product: MAT
Classification: Tools
Component: Core (show other bugs)
Version: 1.1   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Andrew Johnson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-03 08:31 EST by Andrew Johnson CLA
Modified: 2012-01-20 08:45 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Johnson CLA 2012-01-03 08:31:27 EST
DTFJ dump images can contain multiple address spaces, processes and Java runtimes, for example from z/OS.
The existing DTFJ parser numbers the address space, process in the address space and runtime in the process as nn.nn.nn
See Preferences > DTFJ Parser
"Runtime ID (such as '0.1.1') top use when multiple runtimes are found in a dump"

It would be helpful if the address space id could be displayed.
Comment 1 Andrew Johnson CLA 2012-01-06 03:48:11 EST
I can modify the log to record the address space id, process id and Java runtime execenv.
I can display a warning log message if multiple VMs are found and the user hasn't requested one. Putting a pop-up asking for a user choice would break batch processing.
I can also allow the runtime id to specify the ids directly rather than as ordinals. There is no confusion for address space id (most DTFJ implementations return the default toString, which we can ignore, or a name ending in a hex id), or for Java runtime which is hex. The process id is often returned as a decimal which might cause confusion.
E.g. selecting on the first match of ordinal or pid means the last one cannot be selected.
ordinal 0: pid: 2
ordinal 1: pid: 10
ordinal 2: pid: 1
Given most pids are large 100 to 60000 and there are few processes per address space this is unlikely to be a problem. An ad-hoc solution is to convert single digit pids to hex, while leaving the others for readability.
ordinal 0: pid: 0x2
ordinal 1: pid: 10
ordinal 2: pid: 0x1
Comment 2 Andrew Johnson CLA 2012-01-20 08:45:08 EST
If a runtime ID is specified in the preference page then a log messages as follows is generated:

Found Java runtime 0.0.0 in image at address space '0' process ID '4012' runtime address '0x1dc628' version Java(TM) SE Runtime Environment(build jvmwa6460sr9-20110624_85526)
IBM J9 VM(JRE 1.6.0 IBM J9 2.4 Windows 7 amd64-64 jvmwa6460sr9-20110624_85526 (JIT enabled, AOT enabled)
J9VM - 20110624_085526
JIT  - r9_20101028_17488ifx17
GC   - 20101027_AA)

or

Ignoring extra Java runtime 0.0.0 found in image at address space '0' process ID '9820' runtime address '0' version JRE 1.6.0 IBM J9 2.4 Windows 7 amd64-64 build jvmwa6460sr9-20110624_85526
VM build 20110624_085526
JIT enabled, AOT enabled - r9_20101028_17488ifx17
GC - 20101027_AA