常用的tomcat举例:
<%@ page contentType="text/htmlcharset=UTF-8" language="java" pageEncoding="UTF-8"%>
<%@ page import="java.util.Set"%>
<%@ page import="java.util.Map"%>
<%@ page import="java.util.Iterator"%>
<%
if("127.0.0.1".equals(request.getRemoteHost()))
{
Map<Thread,StackTraceElement[]>threads = Thread.getAllStackTraces()
Set keys = threads.keySet()
Iterator iter = keys.iterator()
while (iter.hasNext())
{
Thread t = (Thread)iter.next()
%>
=======================================================================
ID: <%=t.getId()%>
State: <%=t.getState()%>
<%= "\n"%>
<%
StackTraceElement[] trace = threads.get(t)
for(int i = 0 i <trace.lengthi++)
{
%>
<%= trace[i].toString()%>
<%= "\n"%>
<%
}
}
}
%>
以上代码中:每个thread对应的StackTraceElement都会有详细的记录,并且通过循环的方法打印出来。
可以。当程序被停住时,可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。用gdb调试程序时,可以使用“ set logging on ”命令把执行gdb的过程记录下来,方便以后自己参考或是别人帮忙分析。默认的日志文件是“ gdb.txt ”。GDB是GNU开原组织旗下一款强大的代码调试工具,使用GDB可以自定义程序运行方式;让程序停止在你指定的位置设置断点;在停止点查看当前程序的状态:变量、寄存器的值;动态改变程序的状态。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)