use of com.ibm.dtfj.image.ImageProcess in project openj9 by eclipse.
the class InfoProcCommand method printThreads.
private void printThreads() {
ImageProcess ip = ctx.getProcess();
out.print("\t Native thread IDs:");
out.print("\n\t ");
// normal tab plus 2 spaces
int lineLength = 10;
// FIXME: should output architecture (32/64-bit), endianness before threads
Iterator<?> itThread = ip.getThreads();
while (itThread.hasNext()) {
Object next = itThread.next();
if (next instanceof CorruptData) {
out.print("\n\t <corrupt data>");
continue;
}
ImageThread it = (ImageThread) next;
try {
String threadID = it.getID();
if (threadID != null) {
if (lineLength + threadID.length() > 80) {
out.print("\n\t ");
lineLength = 10;
}
out.print(it.getID() + " ");
lineLength += threadID.length() + 1;
}
} catch (CorruptDataException e) {
out.print(Exceptions.getCorruptDataExceptionString());
}
}
out.print("\n");
}
use of com.ibm.dtfj.image.ImageProcess 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