首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式获得堆栈跟踪与阻塞和等待信息?

如何以编程方式获得堆栈跟踪与阻塞和等待信息?
EN

Stack Overflow用户
提问于 2019-08-09 06:14:03
回答 1查看 186关注 0票数 1

我正在调查我的Android应用程序中的死锁问题(不是ANR)。当我的应用程序检测到潜在的死锁时,它会使用Thread.getAllStackTraces()打印出所有活动线程的堆栈跟踪。但是这个堆栈跟踪信息不包括等待和阻塞信息。我想以编程方式获得堆栈跟踪与等待和阻塞的信息,如下所示。有没有办法做到这一点?

代码语言:javascript
运行
复制
"main" prio=5 tid=1 WAIT
| group="main" sCount=1 dsCount=0 obj=0x418ccea0 self=0x417c7388
| sysTid=13183 nice=-11 sched=0/0 cgrp=apps handle=1074684244
| state=S schedstat=( 0 0 0 ) utm=7 stm=5 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x42aeb7a8> (a com.myapp.SomeModule)
at java.lang.Object.wait(Object.java:364)
at com.myapp.SomeModule.doSomething(SomeModule.java:45)
EN

回答 1

Stack Overflow用户

发布于 2019-08-20 23:58:09

有一种方法可以在应用程序崩溃或线程因意外异常而终止时获得堆栈跟踪。

您可以添加UncaughtExceptionHandler

代码语言:javascript
运行
复制
Thread.setDefaultUncaughtExceptionHandler { thread, exception -> 
   // check here for thread info and exception thrown
}

点击此处查看更多信息:https://www.bugsnag.com/blog/error-handling-on-android-part-2

与此相关的安卓文档:https://developer.android.com/reference/java/lang/Thread.UncaughtExceptionHandler

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

https://stackoverflow.com/questions/57421278

复制
相关文章

相似问题

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