This commit is contained in:
Rinjae
2025-10-23 13:21:43 +09:00
commit d6bf8e1943
1004 changed files with 192647 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<%@ page import="java.io.*
,java.util.*
"%>
<%!
static private String getStackTrace(Thread thread) {
StringBuffer sb = new StringBuffer();
sb.append("¡á " + thread.getName() + " ");
sb.append("prio=" + thread.getPriority() + " ");
sb.append(thread.isDaemon() ? "daemon " : " ");
StackTraceElement stack[] = thread.getStackTrace();
if (stack==null || stack.length<1)
return sb.toString();
if (stack[0].getMethodName().equals("wait"))
sb.append("wait \n");
else if (stack[0].getMethodName().equals("sleep"))
sb.append("sleep \n");
else
sb.append(stack[0].getMethodName() + " \n");
for (int i=0; i<stack.length; i++) {
String filename = stack[i].getFileName();
if (filename == null) {
// The source filename is not available
}
String className = stack[i].getClassName();
String methodName = stack[i].getMethodName();
boolean isNativeMethod = stack[i].isNativeMethod();
int line = stack[i].getLineNumber();
if (!className.startsWith("java")
&& !className.startsWith("org.")
&& !className.startsWith("edu.")
&& !className.startsWith("sun.")
&& !className.startsWith("com.sun."))
sb.append(" > at ");
else
sb.append(" at ");
sb.append(className + "." + methodName);
sb.append("(" + filename + ":" + (isNativeMethod ? "native" : String.valueOf(line)) + ")");
if (!className.startsWith("java") && !className.startsWith("org.") && !className.startsWith("sun.") && !className.startsWith("com.sun."))
sb.append("-");
sb.append("\n");
}
return sb.toString();
}
static public String dump() {
Hashtable<String, Thread> hash = new Hashtable<String, Thread>();
StringBuffer sb = new StringBuffer();
ThreadGroup it = Thread.currentThread().getThreadGroup();
Thread[] threads = new Thread[it.activeCount()] ;
sb.append("active thread count : " + it.activeCount() + "\n");
it.enumerate(threads);
String[] threadNames = new String[threads.length];
for (int i=0; i<threadNames.length; i++) {
threadNames[i] = threads[i].getName() + " - " + threads[i].getState();
hash.put(threadNames[i], threads[i]);
}
Arrays.sort(threadNames);
for(int i=0;i<threadNames.length;i++) {
sb.append(getStackTrace(hash.get(threadNames[i])));
}
return sb.toString();
}
%>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
%>
<html>
<body><pre><%=dump()%></pre>
</body>
</html>