当我在某个断点时,我正在寻找一种获取堆栈跟踪的方法。这可能吗?理想情况下,不必崩溃应用程序和修改代码。我尝试使用Android调试器,但找不到任何有用的东西。
原因是有时我不确定应用程序是如何到达代码中的某一点的,所以我愿意接受其他可以帮助我跟踪方法调用的建议。
答案 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}}。