Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Issues
  • #2492
Closed
Open
Issue created Jul 03, 2017 by Administrator@rootContributor

ASSERTs : ARM Android debug build fail for Youtube APK

Created by: sudakshina-das-arm

I am creating a separate issue specifically for the debug build from #2465 (closed) The debug build with the Youtube APK crashes unreliably and gives out either of the following 2 report

07-03 14:32:09.565 I/wrap.sh ( 4940): <Starting application /system/bin/app_process32 (4941)>
07-03 14:32:09.571 I/wrap.sh ( 4940): <Paste into GDB to debug DynamoRIO clients:
07-03 14:32:09.571 I/wrap.sh ( 4940): set confirm off
07-03 14:32:09.571 I/wrap.sh ( 4940): add-symbol-file '/data/local/tmp/DynamoRIO/lib32/debug/libdynamorio.so' 0xb6ce5350
07-03 14:32:09.571 I/wrap.sh ( 4940): >
07-03 14:32:09.586 I/wrap.sh ( 4940): <Initial options = -no_dynamic_options -code_api -no_use_all_memory_areas -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -early_inject -emulate_brk -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct >
07-03 14:32:24.299 I/wrap.sh ( 4940): <unhandled signal system call 177>
07-03 14:32:37.914 I/wrap.sh ( 4940): referenceTable GDEF length=814 1
07-03 14:32:37.937 I/wrap.sh ( 4940): referenceTable GSUB length=11364 1
07-03 14:32:38.003 I/wrap.sh ( 4940): referenceTable GPOS length=47302 1
07-03 14:32:44.394 I/wrap.sh ( 4940): <-- parent 4941 forked child 4995 -->
07-03 14:32:44.882 I/wrap.sh ( 4940): <Stopping application /system/bin/app_process32 (4995)>
07-03 14:33:10.883 I/wrap.sh ( 4940): <Application /system/bin/app_process32 (4941).  Internal Error: DynamoRIO debug check failure: dynamorio/core/vmareas.c:1482 !(((((VECTOR_SHARED) & ((v)->flags)) != 0) && !(((VECTOR_NO_LOCK) & ((v)->flags)) != 0) && !self_owns_write_lock(&(v)->lock)) && !dynamo_exited) || READWRITE_LOCK_HELD(&(v)->lock)
07-03 14:33:10.883 I/wrap.sh ( 4940): (Error occurred @127719 frags)
07-03 14:33:10.883 I/wrap.sh ( 4940): version 6.2.17294, custom build
07-03 14:33:10.883 I/wrap.sh ( 4940): -no_dynamic_options -code_api -no_use_all_memory_areas -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -early_inject -emulate_brk -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct 
07-03 14:33:10.883 I/wrap.sh ( 4940): 0xb6d9a7a9 0x78af04b0>
07-03 14:33:10.916 I/wrap.sh ( 4940): wrap.sh terminated by exit(255)

OR

07-03 12:35:02.130 I/wrap.sh ( 5148): <Starting application /system/bin/app_process32 (5149)>
07-03 12:35:02.137 I/wrap.sh ( 5148): <Paste into GDB to debug DynamoRIO clients:
07-03 12:35:02.137 I/wrap.sh ( 5148): set confirm off
07-03 12:35:02.137 I/wrap.sh ( 5148): add-symbol-file '/data/local/tmp/DynamoRIO/lib32/debug/libdynamorio.so' 0xb6d1e350
07-03 12:35:02.137 I/wrap.sh ( 5148): >
07-03 12:35:02.151 I/wrap.sh ( 5148): <Initial options = -no_dynamic_options -code_api -no_use_all_memory_areas -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -early_inject -emulate_brk -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct >
07-03 12:35:16.859 I/wrap.sh ( 5148): <unhandled signal system call 177>
07-03 12:35:30.556 I/wrap.sh ( 5148): referenceTable GDEF length=814 1
07-03 12:35:30.580 I/wrap.sh ( 5148): referenceTable GSUB length=11364 1
07-03 12:35:30.646 I/wrap.sh ( 5148): referenceTable GPOS length=47302 1
07-03 12:35:36.892 I/wrap.sh ( 5148): <-- parent 5149 forked child 5183 -->
07-03 12:35:37.346 I/wrap.sh ( 5148): <Stopping application /system/bin/app_process32 (5183)>
07-03 12:35:55.949 I/wrap.sh ( 5148): <CURIOSITY : (app_pc)((((ptr_uint_t)addr+len) + ((os_page_size())-1)) & (~((ptr_uint_t)(os_page_size())-1))) == ma->end in file dynamorio/core/unix/os.c line 6729
07-03 12:35:55.961 I/wrap.sh ( 5148): version 6.2.17294, custom build
07-03 12:35:55.961 I/wrap.sh ( 5148): -no_dynamic_options -code_api -no_use_all_memory_areas -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -early_inject -emulate_brk -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct 
07-03 12:35:55.962 I/wrap.sh ( 5148): 0xb6dd37a9 0x78af04b0>
07-03 12:36:03.081 I/wrap.sh ( 5148): WARNING: linker: /data/app/com.google.android.gms-2/lib/arm/libconscrypt_gmscore_jni.so: unused DT entry: type 0x1d arg 0x1ed
07-03 12:37:25.360 I/wrap.sh ( 5148): <Application /system/bin/app_process32 (5149).  Internal Error: DynamoRIO debug check failure: dynamorio/core/unix/signal.c:5682 sig > 0 && sig <= MAX_SIGNUM && IS_RT_FOR_APP(info, sig)
07-03 12:37:25.360 I/wrap.sh ( 5148): (Error occurred @254191 frags)
07-03 12:37:25.360 I/wrap.sh ( 5148): version 6.2.17294, custom build
07-03 12:37:25.360 I/wrap.sh ( 5148): -no_dynamic_options -code_api -no_use_all_memory_areas -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -early_inject -emulate_brk -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct 
07-03 12:37:25.360 I/wrap.sh ( 5148): 0xb6dd37a9 0x78af04b0
07-03 12:37:25.360 I/wrap.sh ( 5148): 0x9a43b0e9 0x432f7465>
07-03 12:37:25.722 I/wrap.sh ( 5148): wrap.sh terminated by exit(25

I have already used the following changes in my branch to get the debug build to not fail on issues that were mentioned in #2465 (closed) (@egrimley gave me the missing instruction changes in table_a32_unpred.c)

diff --git a/core/arch/arm/table_a32_unpred.c b/core/arch/arm/table_a32_unpred.c
index d8f150a..61b1059 100644
--- a/core/arch/arm/table_a32_unpred.c
+++ b/core/arch/arm/table_a32_unpred.c
@@ -298,11 +298,11 @@ const instr_info_t A32_ext_bit7[][2] = {
  */
 const instr_info_t A32_ext_bit19[][2] = {
   { /* 0 */
-    {EXT_SIMD8,         0xf2800000, "(ext simd8  0)", xx, xx, xx, xx, xx, no, x, 0},
-    {EXT_SIMD5,         0xf2880000, "(ext simd5  0)", xx, xx, xx, xx, xx, no, x, 0},
+    {EXT_SIMD8,         0xf2800010, "(ext simd8  0)", xx, xx, xx, xx, xx, no, x, 0},
+    {EXT_SIMD5,         0xf2880010, "(ext simd5  0)", xx, xx, xx, xx, xx, no, x, 0},
   }, { /* 1 */
-    {EXT_SIMD8,         0xf3800000, "(ext simd8  1)", xx, xx, xx, xx, xx, no, x, 1},
-    {EXT_SIMD5,         0xf3880000, "(ext simd5  1)", xx, xx, xx, xx, xx, no, x, 1},
+    {EXT_SIMD8,         0xf3800010, "(ext simd8  1)", xx, xx, xx, xx, xx, no, x, 1},
+    {EXT_SIMD5,         0xf3880010, "(ext simd5  1)", xx, xx, xx, xx, xx, no, x, 1},
   },
 };
 
@@ -1376,9 +1376,9 @@ const instr_info_t A32_ext_simd8[][80] = {
     /* 0x70 */
     {OP_vabdl_u8,       0xf3800700, "vabdl.u8",       VBdq, xx, VAq, VCq, xx, no, x, END_LIST},
     {OP_vorr_i32,       0xf3800710, "vorr.i32",       VBq, xx, i12x8_24_16_0, xx, xx, no, x, DUP_ENTRY},
-    {INVALID,           0xf3800730, "(bad)",          xx, xx, xx, xx, xx, no, x, NA},
+    {OP_vbic_i32,       0xf3800730, "vbic.i32",       VBq, xx, i12x8_24_16_0, xx, xx, no, x, DUP_ENTRY},
     {OP_vorr_i32,       0xf3800750, "vorr.i32",       VBdq, xx, i12x8_24_16_0, xx, xx, no, x, DUP_ENTRY},
-    {INVALID,           0xf3800770, "(bad)",          xx, xx, xx, xx, xx, no, x, NA},
+    {OP_vbic_i32,       0xf3800770, "vbic.i32",       VBdq, xx, i12x8_24_16_0, xx, xx, no, x, DUP_ENTRY},
     /* 0x80 */
     {OP_vmlal_u8,       0xf3800800, "vmlal.u8",       VBdq, xx, VAq, VCq, xx, no, x, END_LIST},
     {OP_vmov_i16,       0xf3800810, "vmov.i16",       VBq, xx, i12x8_24_16_0, xx, xx, no, x, DUP_ENTRY},
diff --git a/core/arch/interp.c b/core/arch/interp.c
index 569cba3..0d47b28 100644
--- a/core/arch/interp.c
+++ b/core/arch/interp.c
@@ -4075,7 +4075,7 @@ build_bb_ilist(dcontext_t *dcontext, build_bb_t *bb)
     /* Until we're more confident in our decoder/encoder consistency this is
      * at the default debug build -checklevel 2.
      */
-    IF_ARM(DOCHECK(2, check_encode_decode_consistency(dcontext, bb->ilist);));
+    //IF_ARM(DOCHECK(2, check_encode_decode_consistency(dcontext, bb->ilist);));
 
 #ifdef DR_APP_EXPORTS
     /* changes by DR that are visible to clients */
diff --git a/core/unix/memcache.c b/core/unix/memcache.c
index 7777f38..fc9e09d 100644
--- a/core/unix/memcache.c
+++ b/core/unix/memcache.c
@@ -364,6 +364,7 @@ memcache_query_memory(const byte *pc, OUT dr_mem_info_t *out_info)
         out_info->size = (end - start);
         out_info->prot = info->prot;
         out_info->type = info->type;
+#if 0
 #ifdef HAVE_MEMINFO
         DOCHECK(2, {
             byte *from_os_base_pc;
@@ -410,6 +411,7 @@ memcache_query_memory(const byte *pc, OUT dr_mem_info_t *out_info)
             }
         });
 #endif
+#endif
     } else {
         app_pc prev, next;
         found = vmvector_lookup_prev_next(all_memory_areas, (app_pc)pc,
diff --git a/make/configure.cmake.h b/make/configure.cmake.h
index b8e26f3..dee996d 100644
--- a/make/configure.cmake.h
+++ b/make/configure.cmake.h
@@ -320,8 +320,8 @@
 #  define DEBUG_MEMORY
 #  define STACK_GUARD_PAGE
 #  define HEAP_ACCOUNTING
-#  define DEADLOCK_AVOIDANCE
-#  define MUTEX_CALLSTACK /* requires DEADLOCK_AVOIDANCE */
+//#  define DEADLOCK_AVOIDANCE
+//#  define MUTEX_CALLSTACK /* requires DEADLOCK_AVOIDANCE */
    /* even though only usable in all-private config useful in default builds */
 #  define SHARING_STUDY
 #  define HASHTABLE_STATISTICS
Assignee
Assign to
Time tracking