Commit b1b0ed2b authored by Christopher Ferris's avatar Christopher Ferris
Browse files

Use the backtrace interface to skip java maps.

This has no effect until the new unwinder is used. When the new
unwinder is enabled this will have nearly the same behavior as the
old unwinder. The difference is that the old unwinder ignored the
minidebug information (compressed section data) completely. The new
unwinder will not ignore minidebug information in system libraries,
it will only ignore them in .oat or .odex maps.

There will be a small difference between the new and old unwinder. The
new unwinder when dumping in an ANR trace file looks like this:

  native: #00 pc 0000000000069abc  /system/lib64/libc.so (__epoll_pwait+8)
  native: #01 pc 000000000001feb4  /system/lib64/libc.so (epoll_pwait+52)
  native: #02 pc 0000000000015cec  /system/lib64/libutils.so (android::Looper::pollInner(int)+144)
  native: #03 pc 0000000000015bcc  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+108)
  native: #04 pc 0000000000110d98  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
  at android.os.MessageQueue.nativePollOnce(Native method)
  at android.os.MessageQueue.next(MessageQueue.java:325)
  at android.os.Looper.loop(Looper.java:142)
  at android.app.ActivityThread.main(ActivityThread.java:6569)
  at java.lang.reflect.Method.invoke(Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)

The old unwinder looks like this:

  native: #00 pc 0000000000069abc  /system/lib64/libc.so (__epoll_pwait+8)
  native: #01 pc 000000000001feb4  /system/lib64/libc.so (epoll_pwait+52)
  native: #02 pc 0000000000015cec  /system/lib64/libutils.so (android::Looper::p
ollInner(int)+144)
  native: #03 pc 0000000000015bcc  /system/lib64/libutils.so (android::Looper::p
ollOnce(int, int*, int*, void**)+108)
  native: #04 pc 0000000000110d98  /system/lib64/libandroid_runtime.so (???)
  native: #05 pc 00000000001d1e1c  /system/framework/arm64/boot-framework.oat (J
ava_android_os_MessageQueue_nativePollOnce__JI+140)
  at android.os.MessageQueue.nativePollOnce(Native method)
  at android.os.MessageQueue.next(MessageQueue.java:325)
  at android.os.Looper.loop(Looper.java:142)
  at android.app.ActivityThread.main(ActivityThread.java:6569)
  at java.lang.reflect.Method.invoke(Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.jav
a:438)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)

Test: kill -3 of android process.
Change-Id: If9d282d1a7a303c4f2af296bd98b1994b9bc2660
parent 5751dc83
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment