有没有办法按需打印堆栈跟踪?

时间:2012-08-09 13:38:40

标签: java android eclipse adt

当我在某个断点时,我正在寻找一种获取堆栈跟踪的方法。这可能吗?理想情况下,不必崩溃应用程序和修改代码。我尝试使用Android调试器,但找不到任何有用的东西。

原因是有时我不确定应用程序是如何到达代码中的某一点的,所以我愿意接受其他可以帮助我跟踪方法调用的建议。

3 个答案:

答案 0 :(得分:13)

这可以用Java完成:

new Throwable().printStackTrace();

在Eclipse中,如果在Expressions透视图的Debug视图中创建带有该代码的“表达式”,它将打印当前堆栈跟踪(即代码停止的断点的堆栈跟踪)在Console视图中。

答案 1 :(得分:4)

Log.e("AppName", "Debug exception", new Exception());

答案 2 :(得分:2)

最简单的方法是抛出异常,立即捕获它并使用printStackTrace()

您还可以尝试Thread.currentThread().getStackTrace(),除了拥有StackTraceElement[]的文字表示外,还要为printStackTrace()提供{{1}}。