首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dump堆栈()和printStackTrace()之间的区别

Dump堆栈()和printStackTrace()之间的区别
EN

Stack Overflow用户
提问于 2014-07-02 21:28:22
回答 2查看 5.1K关注 0票数 1

我试图获取从android应用程序代码调用的底层C代码的堆栈跟踪,并尝试使用、dumpStack()、和,但没有成功。只是好奇这两个人之间有什么区别吗?

另外,是否有一种方法可以打印底层C代码的堆栈跟踪,使用JNI调用android端的java函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-03 01:40:54

Thread.dumpStack()转储调用线程的当前堆栈跟踪。

Throwable.printStackTrace()打印堆栈跟踪,就像抛出throwable时一样。

票数 6
EN

Stack Overflow用户

发布于 2014-07-03 03:20:24

使用dumpStack()和printStackTrace()的主要区别在于Stack中的第一个条目,在dumpStack()的情况下,第一个条目总是java.lang.Thread.dumpStack(),而在后面的情况下,它是打印堆栈跟踪的方法。如果您不想打印堆栈跟踪,而想要在Java程序中打印它,可以使用Thread类中的getStackTrace()方法。此方法返回一个StackTraceElement数组。在下面的Java程序中,我们将看到在Java中获得当前线程堆栈跟踪的所有三种方法的示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24541325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档