Search in sources :

Example 1 with JavaVMOptionPointer

use of com.ibm.j9ddr.vm29.pointer.generated.JavaVMOptionPointer in project openj9 by eclipse.

the class DTFJJavaVMInitArgs method loadData.

private void loadData() {
    if (// cache has been populated
    isCachePopulated || isCorrupt)
        return;
    // obtain the vm init args, logic copied from javadump.cpp so dtfj output
    // matches javacore output.
    J9VMInitArgsPointer args = null;
    try {
        args = DTFJContext.getVm().vmArgsArray();
        ignoreFlag = !args.actualVMArgs().ignoreUnrecognized().eq(0);
        version = args.actualVMArgs().version().intValue();
    } catch (Throwable t) {
        isCorrupt = true;
        cdata = J9DDRDTFJUtils.handleAsCorruptData(DTFJContext.getProcess(), t);
    }
    if (isCorrupt) {
        // structure is fundamentally unusable
        // prevent continual reloading
        isCachePopulated = true;
        return;
    }
    // now see if we can extract the options
    try {
        int optionCount = args.nOptions().intValue();
        JavaVMOptionPointer option = args.actualVMArgs().options();
        for (int i = 0; i < optionCount; i++) {
            try {
                DTFJJavaVMOption vmoption = new DTFJJavaVMOption(option);
                options.add(vmoption);
                if (log.isLoggable(Level.FINE)) {
                    try {
                        log.fine(String.format("Found VM option %s", vmoption.getOptionString()));
                    } catch (Exception e) {
                        log.warning(e.getMessage());
                    }
                }
                option = option.add(1);
            } catch (Throwable t) {
                CorruptData cd = J9DDRDTFJUtils.handleAsCorruptData(DTFJContext.getProcess(), t);
                options.add(cd);
            }
        }
    } catch (Throwable t) {
        CorruptData cd = J9DDRDTFJUtils.handleAsCorruptData(DTFJContext.getProcess(), t);
        corruptCache = corruptIterator(cd);
    }
    // prevent continual reloading
    isCachePopulated = true;
}
Also used : J9VMInitArgsPointer(com.ibm.j9ddr.vm29.pointer.generated.J9VMInitArgsPointer) CorruptData(com.ibm.dtfj.image.CorruptData) CorruptDataException(com.ibm.dtfj.image.CorruptDataException) JavaVMOptionPointer(com.ibm.j9ddr.vm29.pointer.generated.JavaVMOptionPointer)

Aggregations

CorruptData (com.ibm.dtfj.image.CorruptData)1 CorruptDataException (com.ibm.dtfj.image.CorruptDataException)1 J9VMInitArgsPointer (com.ibm.j9ddr.vm29.pointer.generated.J9VMInitArgsPointer)1 JavaVMOptionPointer (com.ibm.j9ddr.vm29.pointer.generated.JavaVMOptionPointer)1