JAVA或者C#中如何获取并输出调用堆栈上的变量值?

liyin_first 2009-06-18 11:09:40
有这样一个需求:
当程序崩溃抛出异常的时候,想把调用堆栈中的变量值都答应出来,方便查找错误。不知道eclipse调试的时候,是怎么做到查看变量值的?

在晚上搜索了半天都没有满意的结果,希望高手能够给个方案,或者是一个思路就行!

谢谢!!
...全文
507 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mary_zhang_YINNG 2009-07-02
  • 打赏
  • 举报
回复
试试用log来获取运行程序的信息
joyoo_cn 2009-07-02
  • 打赏
  • 举报
回复
用断点,然后单步靠近异常抛出点,就可以读debug视图中的变量值了。
angel6709 2009-06-22
  • 打赏
  • 举报
回复
ding
iefus 2009-06-21
  • 打赏
  • 举报
回复
沙发
holsten32 2009-06-20
  • 打赏
  • 举报
回复
liyin_first 2009-06-19
  • 打赏
  • 举报
回复
to yejinson,这位朋友没有理解我的意思吧。我再详细说一下需求。
比如一段代码
class C {
int i;
void A() {

}
}
//另外一段调用代码
try {
C c = new C();
c.A();
}
catch(Excetion e) {
//如何在这里获取到变量c的值
}

zhouzongjiu 2009-06-18
  • 打赏
  • 举报
回复
顶一个
bigbug9002 2009-06-18
  • 打赏
  • 举报
回复
用e.printStackTrace();

如果你是说你程序中的用到的堆栈,可以在finally{}块中把堆栈的内容输出来。
fosjos 2009-06-18
  • 打赏
  • 举报
回复
估计是直接调用jvm的吧
不过程序崩溃抛出异常,已经退出了,不可能再去访问堆栈了
qsrock 2009-06-18
  • 打赏
  • 举报
回复
帮顶一个!看debug的源码是怎么写的!
让爱延续 2009-06-18
  • 打赏
  • 举报
回复
我学C#的,在vs2005的开发环境中设断点,可以使用单步执行,每执行一步看一下局部变量就可以了!

在eclipse中也能这样执行的, 好像有个叫 什么debug的就是
yejinson 2009-06-18
  • 打赏
  • 举报
回复
堆栈你都得到了, 还搞出来?
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();
}
这些不是可以操作了吗, 楼上有个朋友已经说了吗
liyin_first 2009-06-18
  • 打赏
  • 举报
回复
ms无法解决。。。
方法调用堆栈可以得到,但是具体里面的变量值这才是我想要得到。
自己顶一下
laorer 2009-06-18
  • 打赏
  • 举报
回复
StackTrace ss = new StackTrace(true);
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();

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧