Guardsquare / proguard

ProGuard, Java optimizer and obfuscator
https://www.guardsquare.com/en/products/proguard
GNU General Public License v2.0
2.89k stars 412 forks source link

ReTrace spams identical methods when no line numbers are available. #81

Open jlennox opened 4 years ago

jlennox commented 4 years ago

Version: ReTrace 7.0 from the Releases page. Command: java -jar retrace.jar -regex '(?:.*?/data/app/.+ \(%c\.%m\+.*?)' -verbose mapping-1271.txt tombstone-fancyrgb.txt Files: Unfortunate I can not publically provide a mapping for privacy/security reasons.

Issue: There's massive duplication in the output. It should be evident below.

Input file:

    #31 pc 0001e841  /system/lib/libc.so (__start_thread+24)
    #30 pc 00064955  /system/lib/libc.so (__pthread_start(void*)+22)
    #29 pc 0037a123  /system/lib/libart.so (art::Thread::CreateCallback(void*)+866)
    #28 pc 00358bf5  /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+320)
    #27 pc 00357e9d  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
    #26 pc 000a4709  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
    #25 pc 003fa349  /system/lib/libart.so (art_quick_invoke_stub+224)
    #24 pc 00420f75  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
    #23 pc 00270911  /system/framework/arm/boot.oat (offset 0x132000) (java.lang.Thread.run+64)
    #22 pc 00504ee3  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (f.g.j.e.n$a.run+98)
    #21 pc 003d4c2f  /system/framework/arm/boot.oat (offset 0x132000) (java.util.concurrent.ThreadPoolExecutor$Worker.run+54)
    #20 pc 003d7bd9  /system/framework/arm/boot.oat (offset 0x132000) (java.util.concurrent.ThreadPoolExecutor.runWorker+1048)
    #19 pc 0050a5b1  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (f.g.j.p.y$a.run+472)
    #18 pc 0060d1e5  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (f.g.j.p.m$c$a.a+1868)
    #17 pc 00608437  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (f.g.j.h.a.decode+470)
    #16 pc 00607cd5  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (f.g.j.h.a$a.decode+1276)
    #15 pc 00607f47  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (f.g.j.h.a.a+110)
    #14 pc 0060a1e3  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (f.g.j.n.b.a+162)
    #13 pc 0060a7ad  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (f.g.j.n.b.c+1348)
    #12 pc 0078afd1  /system/framework/arm/boot-framework.oat (offset 0x3ef000) (android.graphics.BitmapFactory.decodeStream+632)
    #11 pc 003f4cd3  /system/framework/arm/boot-framework.oat (offset 0x3ef000) (android.graphics.BitmapFactory.nativeDecodeStream [DEDUPED]+186)
    #10 pc 000d7a91  /system/lib/libandroid_runtime.so (nativeDecodeStream(_JNIEnv*, _jobject*, _jobject*, _jbyteArray*, _jobject*, _jobject*)+80)

I get output that looks like this:

    #31 pc 0001e841  /system/lib/libc.so (__start_thread+24)
    #30 pc 00064955  /system/lib/libc.so (__pthread_start(void*)+22)
    #29 pc 0037a123  /system/lib/libart.so (art::Thread::CreateCallback(void*)+866)
    #28 pc 00358bf5  /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+320)
    #27 pc 00357e9d  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
    #26 pc 000a4709  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
    #25 pc 003fa349  /system/lib/libart.so (art_quick_invoke_stub+224)
    #24 pc 00420f75  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
    #23 pc 00270911  /system/framework/arm/boot.oat (offset 0x132000) (java.lang.Thread.run+64)
    #22 pc 00504ee3  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (com.facebook.imagepipeline.core.PriorityThreadFactory$1.void run()+98)
                                                                                                                                                                            int access$000(com.facebook.imagepipeline.core.PriorityThreadFactory)+98)
                                                                                                                                                      PriorityThreadFactory$1.void run()+98)
    #21 pc 003d4c2f  /system/framework/arm/boot.oat (offset 0x132000) (java.util.concurrent.ThreadPoolExecutor$Worker.run+54)
    #20 pc 003d7bd9  /system/framework/arm/boot.oat (offset 0x132000) (java.util.concurrent.ThreadPoolExecutor.runWorker+1048)
    #19 pc 0050a5b1  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (com.facebook.imagepipeline.producers.JobScheduler$1.void run()+472)
                                                                                                                                                                        void doJob()+472)
                                                                                                                                                                             access$000(com.facebook.imagepipeline.producers.JobScheduler)+472)
                                                                                                                                                           JobScheduler$1.void run()+472)
                                                                                                                                                                        void doJob()+472)
                                                                                                                                                                             access$000(com.facebook.imagepipeline.producers.JobScheduler)+472)
                                                                                                                                                           JobScheduler$1.void run()+472)
                                                                                                                                                                        void doJob()+472)
                                                                                                                                                                             access$000(com.facebook.imagepipeline.producers.JobScheduler)+472)
                                                                                                                                                           JobScheduler$1.void run()+472)
                                                                                                                                                 image.EncodedImage.void closeSafely(com.facebook.imagepipeline.image.EncodedImage)+472)
                                                                                                                                                 producers.JobScheduler.void doJob()+472)
                                                                                                                                                                             access$000(com.facebook.imagepipeline.producers.JobScheduler)+472)
                                                                                                                                                           JobScheduler$1.void run()+472)
                                                                                                                                                                        void doJob()+472)
                                                                                                                                                                             access$000(com.facebook.imagepipeline.producers.JobScheduler)+472)
                                                                                                                                                           JobScheduler$1.void run()+472)
                                                                                                                                                 image.EncodedImage.void closeSafely(com.facebook.imagepipeline.image.EncodedImage)+472)
                                                                                                                                                 producers.JobScheduler.void doJob()+472)
                                                                                                                                                                             access$000(com.facebook.imagepipeline.producers.JobScheduler)+472)
                                                                                                                                                           JobScheduler$1.void run()+472)
                                                                                                                                                                        void doJob()+472)
                                                                                                                                                                             access$000(com.facebook.imagepipeline.producers.JobScheduler)+472)
                                                                                                                                                           JobScheduler$1.void run()+472)
                                                                                                                                                                        void doJob()+472)
                                                                                                                                                                             access$000(com.facebook.imagepipeline.producers.JobScheduler)+472)
                                                                                                                                                           JobScheduler$1.void run()+472)
                                                                                                                                                                        void doJob()+472)
                                                                                                                                                                             access$000(com.facebook.imagepipeline.producers.JobScheduler)+472)
                                                                                                                                                           JobScheduler$1.void run()+472)
    #18 pc 0060d1e5  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                          boolean access$000(com.facebook.imagepipeline.producers.DecodeProducer)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                          boolean access$100(com.facebook.imagepipeline.producers.DecodeProducer)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 request.ImageRequest.android.net.Uri getSourceUri()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 request.ImageRequest.com.facebook.imagepipeline.common.RotationOptions getRotationOptions()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 request.ImageRequest.com.facebook.imagepipeline.common.ResizeOptions getResizeOptions()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.void setSampleSize(int)+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.com.facebook.imageformat.ImageFormat getImageFormat()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             boolean isFinished()+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             boolean isFinished()+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.com.facebook.imageformat.ImageFormat getImageFormat()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                   imageformat.ImageFormat.java.lang.String getName()+1868)
                                                                                                                                   imagepipeline.producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.int getWidth()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.int getHeight()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.int getSampleSize()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 request.ImageRequest.com.facebook.imagepipeline.common.ResizeOptions getResizeOptions()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           JobScheduler.long getQueuedTime()+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           JobScheduler.long getQueuedTime()+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 request.ImageRequest.android.net.Uri getSourceUri()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                          com.facebook.imagepipeline.decoder.ImageDecoder access$700(com.facebook.imagepipeline.producers.DecodeProducer)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.int getSampleSize()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void handleResult(com.facebook.imagepipeline.image.CloseableImage,int)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                          com.facebook.imagepipeline.core.CloseableReferenceFactory access$800(com.facebook.imagepipeline.producers.DecodeProducer)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder.void handleResult(com.facebook.imagepipeline.image.CloseableImage,int)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 core.CloseableReferenceFactory.com.facebook.common.references.CloseableReference create(java.io.Closeable)+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void handleResult(com.facebook.imagepipeline.image.CloseableImage,int)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void handleResult(com.facebook.imagepipeline.image.CloseableImage,int)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DelegatingConsumer.com.facebook.imagepipeline.producers.Consumer getConsumer()+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder.void handleResult(com.facebook.imagepipeline.image.CloseableImage,int)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void handleResult(com.facebook.imagepipeline.image.CloseableImage,int)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                   common.references.CloseableReference.void closeSafely(com.facebook.common.references.CloseableReference)+1868)
                                                                                                                                   imagepipeline.producers.DecodeProducer$ProgressiveDecoder.void handleResult(com.facebook.imagepipeline.image.CloseableImage,int)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void handleResult(com.facebook.imagepipeline.image.CloseableImage,int)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 decoder.DecodeException.com.facebook.imagepipeline.image.EncodedImage getEncodedImage()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void handleError(java.lang.Throwable)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DelegatingConsumer.com.facebook.imagepipeline.producers.Consumer getConsumer()+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder.void handleError(java.lang.Throwable)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void handleError(java.lang.Throwable)+1868)
                                                                                                                                                                                                  doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.void closeSafely(com.facebook.imagepipeline.image.EncodedImage)+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           JobScheduler.long getQueuedTime()+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.void closeSafely(com.facebook.imagepipeline.image.EncodedImage)+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                             boolean isFinished()+1868)
                                                                                                                                                                                             void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                 image.EncodedImage.com.facebook.imageformat.ImageFormat getImageFormat()+1868)
                                                                                                                                                 producers.DecodeProducer$ProgressiveDecoder.void doDecode(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                                                                  access$200(com.facebook.imagepipeline.producers.DecodeProducer$ProgressiveDecoder,com.facebook.imagepipeline.image.EncodedImage,int)+1868)
                                                                                                                                                           DecodeProducer$ProgressiveDecoder$1.void run(com.facebook.imagepipeline.image.EncodedImage,int)+1868)
    #17 pc 00608437  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (com.facebook.imagepipeline.decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+470)
                                                                                                                                                 image.EncodedImage.com.facebook.imageformat.ImageFormat getImageFormat()+470)
                                                                                                                                                 decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+470)
                                                                                                                                                 image.EncodedImage.void setImageFormat(com.facebook.imageformat.ImageFormat)+470)
                                                                                                                                                 decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+470)
    #16 pc 00607cd5  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (com.facebook.imagepipeline.image.EncodedImage.com.facebook.imageformat.ImageFormat getImageFormat()+1276)
                                                                                                                                                 decoder.DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                                             com.facebook.imagepipeline.image.CloseableStaticBitmap decodeJpeg(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                                             com.facebook.imagepipeline.image.CloseableStaticBitmap decodeJpeg(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                 image.EncodedImage.int getRotationAngle()+1276)
                                                                                                                                                 decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableStaticBitmap decodeJpeg(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                 image.EncodedImage.int getExifOrientation()+1276)
                                                                                                                                                 decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableStaticBitmap decodeJpeg(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                                             com.facebook.imagepipeline.image.CloseableStaticBitmap decodeJpeg(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                                             com.facebook.imagepipeline.image.CloseableStaticBitmap decodeJpeg(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                 image.EncodedImage.int getWidth()+1276)
                                                                                                                                                 decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableImage decodeGif(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                 image.EncodedImage.int getHeight()+1276)
                                                                                                                                                 decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableImage decodeGif(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                                             com.facebook.imagepipeline.image.CloseableImage decodeGif(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                                             com.facebook.imagepipeline.image.CloseableImage decodeGif(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                                             com.facebook.imagepipeline.image.CloseableImage decodeGif(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                 image.EncodedImage.int getWidth()+1276)
                                                                                                                                                 decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableImage decodeGif(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                                             com.facebook.imagepipeline.image.CloseableImage decodeAnimatedWebp(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
                                                                                                                                                         DefaultImageDecoder$1.com.facebook.imagepipeline.image.CloseableImage decode(com.facebook.imagepipeline.image.EncodedImage,int,com.facebook.imagepipeline.image.QualityInfo,com.facebook.imagepipeline.common.ImageDecodeOptions)+1276)
    #15 pc 00607f47  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (com.facebook.imagepipeline.decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableStaticBitmap decodeStaticImage(com.facebook.imagepipeline.image.EncodedImage,com.facebook.imagepipeline.common.ImageDecodeOptions)+110)
                                                                                                                                                 image.EncodedImage.int getRotationAngle()+110)
                                                                                                                                                 decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableStaticBitmap decodeStaticImage(com.facebook.imagepipeline.image.EncodedImage,com.facebook.imagepipeline.common.ImageDecodeOptions)+110)
                                                                                                                                                 image.EncodedImage.int getExifOrientation()+110)
                                                                                                                                                 decoder.DefaultImageDecoder.com.facebook.imagepipeline.image.CloseableStaticBitmap decodeStaticImage(com.facebook.imagepipeline.image.EncodedImage,com.facebook.imagepipeline.common.ImageDecodeOptions)+110)
    #14 pc 0060a1e3  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (com.facebook.imagepipeline.platform.DefaultDecoder.com.facebook.common.references.CloseableReference decodeFromEncodedImageWithColorSpace(com.facebook.imagepipeline.image.EncodedImage,android.graphics.Bitmap$Config,android.graphics.Rect,android.graphics.ColorSpace)+162)
    #13 pc 0060a7ad  /data/app/com.company_name-e_31ZTvSuuYh2DsbjOLwiw==/oat/arm/base.odex (offset 0x231000) (com.facebook.imagepipeline.platform.DefaultDecoder.com.facebook.common.references.CloseableReference decodeFromStream(java.io.InputStream,android.graphics.BitmapFactory$Options,android.graphics.Rect,android.graphics.ColorSpace)+1348)
                                                                                                                                   common.internal.Preconditions.java.lang.Object checkNotNull(java.lang.Object)+1348)
                                                                                                                                   imagepipeline.platform.DefaultDecoder.com.facebook.common.references.CloseableReference decodeFromStream(java.io.InputStream,android.graphics.BitmapFactory$Options,android.graphics.Rect,android.graphics.ColorSpace)+1348)
    #12 pc 0078afd1  /system/framework/arm/boot-framework.oat (offset 0x3ef000) (android.graphics.BitmapFactory.decodeStream+632)
    #11 pc 003f4cd3  /system/framework/arm/boot-framework.oat (offset 0x3ef000) (android.graphics.BitmapFactory.nativeDecodeStream [DEDUPED]+186)
    #10 pc 000d7a91  /system/lib/libandroid_runtime.so (nativeDecodeStream(_JNIEnv*, _jobject*, _jobject*, _jbyteArray*, _jobject*, _jobject*)+80)
mrjameshamilton commented 3 years ago

Hi @jlennox, thanks for the report!

Are you able to share some minimal version of the mapping that causes the problem? Maybe you could search & replace sensitive names? Maybe a small snippet from the mapping that can reproduce the problem?

jlennox commented 3 years ago

@mrjameshamilton

https://github.com/Guardsquare/proguard/blob/8ce02565e67f8089f406d47e6275449ff7bd7272/retrace/src/proguard/retrace/FrameRemapper.java#L424-L436

This code allows matches that lack a line number to have multiple matches. What happens is because proguard re-uses the scrambled identifiers, that when there's no line number information the obfuciated identifier could be multiple things -- but the problem I'm having is proguard will reuse scrambled identifiers as something it already was, causing the duplication seen above. For example, on lines 1-2 a means foo, then on 3-4 a means bar, then on 5-6 a means foo again. This would cause the ReTrace to print out that it could be foo bar or foo the latter most foo being the issue I'm reporting. At least, this is the problem as I understand it to be.

The consumer, of the above code is https://github.com/Guardsquare/proguard/blob/master/retrace/src/proguard/retrace/FrameRemapper.java#L160 needs a hashset that prevents it from hitting those duplicated reuses.

This is a psudo-diff (not tested)

+                Set<string> seenFrames = new Set<string>()
                 while (methodInfoIterator.hasNext())
                 {
                     MethodInfo methodInfo = methodInfoIterator.next();
                     if (methodInfo.matches(obfuscatedLineNumber,
                                            originalType,
                                            originalArguments))
                     {
                         // Do we have a different original first line number?
                         // We're allowing unknown values, represented as 0.
                         int lineNumber = obfuscatedFrame.getLineNumber();
                         if (methodInfo.originalFirstLineNumber != methodInfo.obfuscatedFirstLineNumber)
                         {
                             // Do we have an original line number range and
                             // sufficient information to shift the line number?
                             lineNumber = methodInfo.originalLastLineNumber    != 0                                  &&
                                          methodInfo.originalLastLineNumber    != methodInfo.originalFirstLineNumber &&
                                          methodInfo.obfuscatedFirstLineNumber != 0                                  &&
                                          lineNumber                           != 0 ?
                                 methodInfo.originalFirstLineNumber - methodInfo.obfuscatedFirstLineNumber + lineNumber :
                                 methodInfo.originalFirstLineNumber;
                         }

+                        FrameInfo frame = new FrameInfo(methodInfo.originalClassName,
+                                                        sourceFileName(methodInfo.originalClassName),
+                                                        lineNumber,
+                                                        methodInfo.originalType,
+                                                        obfuscatedFrame.getFieldName(),
+                                                        methodInfo.originalName,
+                                                        methodInfo.originalArguments)
+                                   
+                        // When no line number is present, skip adding duplicates.
+                        if (seenFrames.add(frame.toString())) {
+                           continue;
+                        }
+
+                        originalMethodFrames.add(frame);
-                        originalMethodFrames.add(new FrameInfo(methodInfo.originalClassName,
-                                                               sourceFileName(methodInfo.originalClassName),
-                                                               lineNumber,
-                                                               methodInfo.originalType,
-                                                               obfuscatedFrame.getFieldName(),
-                                                               methodInfo.originalName,
-                                                               methodInfo.originalArguments));
                     }
                 }

Sorry but I do not feel ok sharing any portion of a mapping/stack because I do not know what vectors for outside parties that would make available, but I believe my explanation to be sufficient for someone inhouse to reproduce the issue. Using a regex that does not get line numbers should reproduce this easily. This is always the case on Tombstone crashes.