Usage:jstack [-l] <pid>(to connect to running process)jstack -F [-m] [-l] <pid>(to connect to a hung process)jstack [-m] [-l] <executable> <core>(to connect to a core file)jstack [-m] [-l] [server_id@]<remote server IP or hostname>(to connect to a remote debug server)
Options:-F to force a thread dump. Use when jstack <pid> does not respond (process is hung)-m to print both java and native frames (mixed mode)-l long listing. Prints additional information about locks-h or -help to print this help message
public final class DebugUtil {
private static final String SEPARATOR = "\n";
private DebugUtil() {}
public static String formatStackTrace(StackTraceElement[] stackTrace) {StringBuilder buffer = new StringBuilder();for (StackTraceElement element : stackTrace) {buffer.append(element).append(SEPARATOR);}return buffer.toString();}
public static String formatCurrentStacktrace() {StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();return formatStackTrace(stackTrace);}}