facebook / redex

A bytecode optimizer for Android apps
https://fbredex.com/
MIT License
6.03k stars 653 forks source link

RuntimeError: redex-all crashed with exit code -6! You can re-run it under gdb by running /tmp/redex.beKGO2/redex-gdb-4df9a653.sh or under lldb by running /tmp/redex.beKGO2/redex-lldb-9npd6wlf.sh #665

Open Xinmeng322 opened 2 years ago

Xinmeng322 commented 2 years ago

who can tell me why? thanks

command:
ANDROID_SDK=/Users/zhangyuehuan/Library/Android/sdk redex --sign -s /Users/zhangyuehuan/workspace/500w_android/tool/keystore/m2u/release/ -a wanandroid -p wanandroid -c ~/Desktop/interdex_stripdebuginfo.config -P /Users/zhangyuehuan/workspace/500w_android/app/proguard-rules.pro -o ~/Desktop/app-release-proguardwithr8-stripdebuginfo-interdex.apk ~/Desktop/tinyApk/M2U-test-normalrelease-2.7.8.20781_x64-20220107_mr278.apk

outputs:

RACE_CLASS_FILE= TRACE_CLASS_NAME= Trace settings: TRACEFILE= SHOW_TIMESTAMPS= SHOW_TRACEMODULE= TRACE_METHOD_FILTER= Unimplemented command (skipping): -ignorewarnings at line 1 Unimplemented command (skipping): -renamesourcefileattribute at line 6 Unimplemented command (skipping): -ignorewarnings at line 364 Expecting field or member specification but got synchronized at line 382 Unimplemented command (skipping): -ignorewarnings at line 501 Found 1 parse errors Parsed ProGuard config file completed in 0.0 seconds Load classes from dexes completed in 1.4 seconds Load library jars completed in 0.6 seconds Deobfuscating dex elements completed in 0.4 seconds Process keep for whyareyoukeeping completed in 0.0 seconds Process keep for classes and members completed in 1.7 seconds Process keep for assumenosideeffects completed in 0.0 seconds Processing proguard rules completed in 1.8 seconds No Optimizations Rules completed in 0.0 seconds Mark keep-methods completed in 0.0 seconds Computing XML reachability completed in 0.1 seconds Computing native reachability completed in 0.4 seconds Analyzing reflection completed in 0.1 seconds Analyzing Serializable completed in 0.0 seconds Initializing for json serde completed in 0.0 seconds Initializing reachable classes completed in 0.6 seconds Redex_frontend completed in 4.8 seconds API Level Checker completed in 0.1 seconds WARNING: No inliner config Evaluating StripDebugInfoPass... StripDebugInfoPass (eval) completed in 0.0 seconds Evaluating InterDexPass... InterDexPass (eval) completed in 0.0 seconds Evaluating RegAllocPass... RegAllocPass (eval) completed in 0.0 seconds Running IRTypeChecker... libc++abi: terminating with uncaught exception of type boost::exception_detail::error_info_injector: libredex/PassManager.cpp:275: static boost::optional (anonymous namespace)::CheckerConfig::run_verifier(const Scope &, bool, bool, bool, bool, bool): assertion `!exit_on_fail' failed. Inconsistency found in Dex code for Lcom/yxcorp/gifshow/album/AlbumPerformanceOptOption$c;.createFromParcel:(Landroid/os/Parcel;)Ljava/lang/Object; Type error in method Lcom/yxcorp/gifshow/album/AlbumPerformanceOptOption$c;.createFromParcel:(Landroid/os/Parcel;)Ljava/lang/Object; at instruction 'INVOKE_DIRECT v0, v1, v4, v5, v2, Lcom/yxcorp/gifshow/album/AlbumPerformanceOptOption;.:(ZIZZ)V' @ 0x7ff3e2f9f2b0 for illegal access to private Lcom/yxcorp/gifshow/album/AlbumPerformanceOptOption;.:(ZIZZ)V from Lcom/yxcorp/gifshow/album/AlbumPerformanceOptOption$c;.createFromParcel:(Landroid/os/Parcel;)Ljava/lang/Object; Code: [0x7ff3dde649c0] OPCODE: IOPCODE_LOAD_PARAM_OBJECT v6 [0x7ff3dde64a20] OPCODE: IOPCODE_LOAD_PARAM_OBJECT v7 [0x7ff3dde656c0] OPCODE: CONST_STRING "in" [0x7ff3e2f9f4b0] OPCODE: IOPCODE_MOVE_RESULT_PSEUDO_OBJECT v0 [0x7ff3dde656e0] OPCODE: INVOKE_STATIC v7, v0, Lkotlin/jvm/internal/Intrinsics;.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V [0x7ff3dde657e0] OPCODE: NEW_INSTANCE Lcom/yxcorp/gifshow/album/AlbumPerformanceOptOption; [0x7ff3e2f9f530] OPCODE: IOPCODE_MOVE_RESULT_PSEUDO_OBJECT v0 [0x7ff3dde65800] OPCODE: INVOKE_VIRTUAL v7, Landroid/os/Parcel;.readInt:()I [0x7ff3e2f9e330] OPCODE: MOVE_RESULT v1 [0x7ff3e2f9e350] OPCODE: CONST v2, 1 [0x7ff3e2f9e450] OPCODE: CONST v3, 0 [0x7ff3e2f9e470] OPCODE: IF_EQZ v1 [0x7ff3e2f9e570] OPCODE: CONST v1, 1 [0x7ff3e2f9e590] OPCODE: GOTO [0x7ff3e2f9f3b0] TARGET: SIMPLE 0x7ff3e2f9e470 [0x7ff3e2f9e690] OPCODE: CONST v1, 0 [0x7ff3e2f9f3d0] TARGET: SIMPLE 0x7ff3e2f9e590 [0x7ff3e2f9e6b0] OPCODE: INVOKE_VIRTUAL v7, Landroid/os/Parcel;.readInt:()I [0x7ff3e2f9e7b0] OPCODE: MOVE_RESULT v4 [0x7ff3e2f9e7d0] OPCODE: INVOKE_VIRTUAL v7, Landroid/os/Parcel;.readInt:()I [0x7ff3dde648a0] OPCODE: MOVE_RESULT v5 [0x7ff3dde64900] OPCODE: IF_EQZ v5 [0x7ff3e2f9e970] OPCODE: CONST v5, 1 [0x7ff3e2f9e990] OPCODE: GOTO [0x7ff3e2f9f3f0] TARGET: SIMPLE 0x7ff3dde64900 [0x7ff3e2f9f070] OPCODE: CONST v5, 0 [0x7ff3e2f9f410] TARGET: SIMPLE 0x7ff3e2f9e990 [0x7ff3e2f9f0d0] OPCODE: INVOKE_VIRTUAL v7, Landroid/os/Parcel;.readInt:()I [0x7ff3e2f9f130] OPCODE: MOVE_RESULT v7 [0x7ff3e2f9f190] OPCODE: IF_EQZ v7 [0x7ff3e2f9f1f0] OPCODE: GOTO [0x7ff3e2f9f430] TARGET: SIMPLE 0x7ff3e2f9f190 [0x7ff3e2f9f250] OPCODE: CONST v2, 0 [0x7ff3e2f9f450] TARGET: SIMPLE 0x7ff3e2f9f1f0 [0x7ff3e2f9f2b0] OPCODE: INVOKE_DIRECT v0, v1, v4, v5, v2, Lcom/yxcorp/gifshow/album/AlbumPerformanceOptOption;.:(ZIZZ)V [0x7ff3e2f9f310] OPCODE: RETURN_OBJECT v0

0 redex-all 0x000000011033a811 _Z23debug_backtrace_handleri + 81 1 libsystem_platform.dylib 0x00007fff204cdd7d _sigtramp + 29 2 ??? 0x00007ff300000400 0x0 + 140681653781504 3 libsystem_c.dylib 0x00007fff203dd406 abort + 125 4 libc++abi.dylib 0x00007fff2044bef2 abort_message + 241 5 libc++abi.dylib 0x00007fff2043d5e5 _ZL28demangling_terminate_handlerv + 242 6 libobjc.A.dylib 0x00007fff20336595 _ZL15_objc_terminatev + 104 7 libc++abi.dylib 0x00007fff2044b307 _ZSt11terminatePFvvE + 8 8 libc++abi.dylib 0x00007fff2044dbeb cxa_get_exception_ptr + 0 9 libc++abi.dylib 0x00007fff2044dbb2 _ZN10cxxabiv1L22exception_cleanup_funcE19_Unwind_Reason_CodeP17_Unwind_Exception + 0 10 redex-all 0x000000011033ae01 _Z11assert_failPKcS0_jS0_10RedexErrorS0_z + 913 11 redex-all 0x00000001104ac43d _ZN12_GLOBALN_113CheckerConfig12run_verifierERKNSt316vectorIP8DexClassNS1_9allocatorIS4_EEEEbbbbb + 4221 12 redex-all 0x00000001104a4c58 _ZN11PassManager10run_passesERNSt316vectorI8DexStoreNS0_9allocatorIS2_EEEER11ConfigFiles + 6136 13 redex-all 0x00000001102c2984 main + 2852 14 libdyld.dylib 0x00007fff204a3f3d start + 1 Traceback (most recent call last): File "/tmp/redex.beKGO2/redex.py", line 1262, in with_temp_cleanup(lambda: run_redex(args), args.always_clean_up) File "/private/tmp/redex.beKGO2/pyredex/utils.py", line 62, in with_temp_cleanup fn() File "/tmp/redex.beKGO2/redex.py", line 1262, in with_temp_cleanup(lambda: run_redex(args), args.always_clean_up) File "/tmp/redex.beKGO2/redex.py", line 1241, in run_redex run_redex_binary(state, exception_formatter, output_line_handler) File "/tmp/redex.beKGO2/redex.py", line 374, in run_redex_binary run() File "/tmp/redex.beKGO2/redex.py", line 367, in run raise RuntimeError(msg) RuntimeError: redex-all crashed with exit code -6! You can re-run it under gdb by running /tmp/redex.beKGO2/redex-gdb-4df9a653.sh or under lldb by running /tmp/redex.beKGO2/redex-lldb-9npd6wlf.sh

Feng23 commented 2 years ago

The access should be valid. I will commit a fix. I was wrong, it seems that the complain is correct. Do you run other optimizer before which may change the bytecode?

Xinmeng322 commented 2 years ago

~The access should be valid. I will commit a fix.~ I was wrong, it seems that the complain is correct. Do you run other optimizer before which may change the bytecode?

what do you mean?

https://fbredex.com/docs/installation

I install redex step by step According these tips in this website。 then run command :

ANDROID_SDK=/Users/zhangyuehuan/Library/Android/sdk redex --sign -s /Users/zhangyuehuan/workspace/500w_android/tool/keystore/m2u/release/ -a wanandroid -p wanandroid -c ~/Desktop/interdex_stripdebuginfo.config -P /Users/zhangyuehuan/workspace/500w_android/app/proguard-rules.pro -o ~/Desktop/app-release-proguardwithr8-stripdebuginfo-interdex.apk ~/Desktop/tinyApk/M2U-test-normalrelease-2.7.8.20781_x64-20220107_mr278.apk

then came these errors .

you said that - run other optimizer ---> just R8 optimizer, others not 。

Novelot commented 2 years ago

我也遇到相同问题了

Xinmeng322 commented 2 years ago

你的邮件已收到。

yangbo524 commented 2 years ago

解决了么?

HandKnock commented 1 year ago

我也遇到相同问题了

Xinmeng322 commented 1 year ago

你的邮件已收到。