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
1 file changed