有这样一个需求:
当程序崩溃抛出异常的时候,想把调用堆栈中的变量值都答应出来,方便查找错误。不知道eclipse调试的时候,是怎么做到查看变量值的?在晚上搜索了半天都没有满意的结果,希望高手能够给个方案,或者是一个思路就行!谢谢!!
当程序崩溃抛出异常的时候,想把调用堆栈中的变量值都答应出来,方便查找错误。不知道eclipse调试的时候,是怎么做到查看变量值的?在晚上搜索了半天都没有满意的结果,希望高手能够给个方案,或者是一个思路就行!谢谢!!
不过程序崩溃抛出异常,已经退出了,不可能再去访问堆栈了
String flName = ss.GetFrame(1).GetFileName();// GetMethod().DeclaringType;
int lineNo = ss.GetFrame(1).GetFileLineNumber();
String methodName = ss.GetFrame(1).GetMethod().Name;
这是 C# 的调用栈上的内容, 至于具体变量值,不清楚....
java 中也有一个,StackTraceElement calledSte = getCallStackTraceElement();
int lineNo = calledSte.getLineNumber();
String className = calledSte.getClassName();
String methodName = calledSte.getMethodName();
String var = "Hello World";
new Exception(var);StackTraceElement[] elements = e.getStackTrace();
e.getMessage(); // 变量var的值
for (int i = 0; i < elements.length; i++){
StackTraceElement element = elements[i];
element.getClassName();
element.getLineNumber();
element.getMethodName();
element.toString();
}
这些不是可以操作了吗, 楼上有个朋友已经说了吗
比如一段代码
class C {
int i;
void A() {}
}
//另外一段调用代码
try {
C c = new C();
c.A();
}
catch(Excetion e) {
//如何在这里获取到变量c的值
}