BoostMultiDex icon indicating copy to clipboard operation
BoostMultiDex copied to clipboard

__futex_syscall3

Open heimashi opened this issue 3 years ago • 0 comments

  #00  pc 0000000000021b48  /system/lib/libc.so (__futex_syscall3+8)
  #00  pc 000000000000e8b4  /system/lib/libc.so
  #00  pc 0000000000052715  /system/lib/libdvm.so (dvmLinearAlloc(Object*, unsigned int)+24)
  #00  pc 000000000006f47f  /system/lib/libdvm.so
  #00  pc 0000000000068f55  /system/lib/libdvm.so
  #00  pc 0000000000000214  /dev/ashmem/dalvik-jit-code-cache (deleted)

接入后GP后台Android4.4版本开始出现较多__futex_syscall3异常,本地也偶尔能在首次启动的时候复现,怀疑是在系统资源(cpu/内存)紧缺下,可能会被系统杀死的情况

查看BoostMultiDex的文章是有介绍使用到libdvm.so,怀疑是4.4这个LinearAlloc上限比较低,分配失败导致的crash

using func = int (*)(constchar* fileName, constchar* odexOutputName, void* ppRawDexFile, bool isBootstrap);

void* handler = dlopen("libdvm.so", RTLD_NOW);
dvmRawDexFileOpen = (func) dlsym(handler, "_Z17dvmRawDexFileOpenPKcS0_PP10RawDexFileb");
dvmRawDexFileOpen(file_path, opt_file_path, &arg, false);

heimashi avatar Nov 24 '20 08:11 heimashi