我正在尝试使用 JDWP 在 Android 上捕获未捕获的异常。
我尝试了以下许多不同的组合,但它从来没有得到任何异常事件,只有单步事件。
它没有得到任何复合事件,在每种情况下,事件计数都是“1”。
EventRequest Set 设置正确:
EVENT_KIND_EXCEPTION
SUSPEND_THREAD_ALL
Modifiers: 1
MOD_KIND_EXCEPTION_ONLY
[referenceTypeID]
FALSE (caught)
TRUE (uncaught)
我已经尝试过使用和不使用修饰符。使用不同的referenceTypeID,例如'0','Ljava/lang/Throwable;' 等等,我也尝试使用计数修饰符。还有 CLASS_PREPARE 和 CLASS_MATCH。
在我跳过导致异常的语句后,Java 捕获并打印出异常,然后它跳转到操作系统的“Landroid/app/ActivityThread;” 执行简历活动()
但它永远不会得到任何异常事件。
我希望能够捕获任何未捕获的异常,但我什至无法让它捕获特定的异常。
如果你不给它一个“catch”命令,jdb 会做同样的事情。
我试着看看 jdb 和 Apache Harmony 也做了什么。
谢谢!