use of com.ibm.dtfj.image.DataUnavailable in project openj9 by eclipse.
the class InfoProcCommand method printCommandLine.
private void printCommandLine() {
ImageProcess ip = ctx.getProcess();
out.print("\t Command line:\n\t ");
try {
String commandLine = ip.getCommandLine();
if (null == commandLine)
out.print("<null>");
else
out.print(commandLine);
} catch (CorruptDataException e) {
out.print(Exceptions.getCorruptDataExceptionString());
} catch (DataUnavailable e) {
out.print("Could not determine command line");
}
out.println();
out.println();
// Print the VM initialization options, similar to javacore.
try {
JavaVMInitArgs args = ctx.getRuntime().getJavaVMInitArgs();
if (args != null) {
out.print("\t Java VM init options: ");
Iterator<?> opts = args.getOptions();
while (opts.hasNext()) {
out.println();
Object obj = opts.next();
if (obj instanceof JavaVMOption) {
JavaVMOption opt = (JavaVMOption) obj;
out.print("\t " + opt.getOptionString());
if (opt.getExtraInfo().getAddress() != 0) {
out.print(" " + Utils.toHex(opt.getExtraInfo()));
}
}
}
} else {
out.print(Exceptions.getDataUnavailableString());
}
} catch (Exception cde) {
// in the event of an exception getting the VM init options, just print the original message
out.print(Exceptions.getDataUnavailableString());
}
out.print("\n");
}
use of com.ibm.dtfj.image.DataUnavailable in project openj9 by eclipse.
the class InfoThreadCommand method doCommand.
public void doCommand(String[] args) {
try {
_is_zOS = ctx.getImage().getSystemType().toLowerCase().indexOf("z/os") >= 0;
} catch (DataUnavailable e) {
out.print(Exceptions.getDataUnavailableString());
} catch (CorruptDataException e) {
out.print(Exceptions.getCorruptDataExceptionString());
}
String param = null;
switch(args.length) {
case 0:
try {
ImageThread it = ctx.getProcess().getCurrentThread();
if (null != it) {
param = it.getID();
} else {
out.print("\nNo current (failing) thread, try specifying a native thread ID, \"all\" or \"*\"\n");
ImageProcess ip = ctx.getProcess();
if (ip != null) {
printThreadSummary(ip);
}
return;
}
} catch (CorruptDataException e) {
out.println("exception encountered while getting information about current thread");
return;
}
break;
case 1:
if (args[0].equalsIgnoreCase("ALL")) {
param = "*";
} else {
param = args[0];
}
break;
default:
out.println("\"info thread\" takes at most one parameter, which, if specified, must be a native thread ID or \"all\" or \"*\"");
return;
}
if (param.equals("*")) {
printAddressSpaceInfo(null, getJavaThreads(null));
} else {
printAddressSpaceInfo(param, getJavaThreads(param));
}
}
Aggregations