-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Dear Dev:
A), Is it known issue for valgrind-android happened unhandled instruction and WARNING unsupported flags DT_FLAGS_1=0x421 ?
B), How could we fix it, any patch we lose, or we have error operations?
Thanks
Best Regards
Kevin Ho( [email protected] ; [email protected] )
-------------------------we do like this-------------------------------
[env: Ubuntu 12.04.5 LTS 64bit ; gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 ; android 6.0 - MTK ; 64 bit device ]
1, code from : external/valgrind
2, compile: mmm external/valgrind
3, push all the libs and valgrind to device
4, happened this logs:
`adb shell valgrind --tool=memcheck --leak-check=full --leak-resolution=high --show-leak-kinds=all mediaserver
==4104== Memcheck, a memory error detector
==4104== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==4104== Using Valgrind-3.11.0.SVN.aosp and LibVEX; rerun with -h for copyright info
==4104== Command: mediaserver
==4104==
WARNING: linker: /system/lib64/valgrind/vgpreload_core-arm-linux.so: unsupported flags DT_FLAGS_1=0x421
WARNING: linker: /system/lib64/valgrind/vgpreload_memcheck-arm-linux.so: unsupported flags DT_FLAGS_1=0x421
disInstr(arm): unhandled instruction: 0x1823E91
cond=0(0x0) 27:20=24(0x18) 4:4=1 3:0=1(0x1)
==4104== valgrind: Unrecognised instruction at address 0xffff0fc8.
==4104== at 0xFFFF0FC8: ???
==4104== Your program just tried to execute an instruction that Valgrind
==4104== did not recognise. There are two possible reasons for this.
==4104== 1. Your program has a bug and erroneously jumped to a non-code
==4104== location. If you are running Memcheck and you just saw a
==4104== warning about a bad jump, it's probably your program's fault.
==4104== 2. The instruction is legitimate but Valgrind doesn't handle it,
==4104== i.e. it's Valgrind's fault. If you think this is the case or
==4104== you are not sure, please let us know and we'll try to fix it.
==4104== Either way, Valgrind will now raise a SIGILL signal which will
==4104== probably kill your program.
==4104==
==4104== Process terminating with default action of signal 4 (SIGILL)
==4104== Illegal opcode at address 0xFFFF0FC8
==4104== at 0xFFFF0FC8: ???
==4104==
==4104== HEAP SUMMARY:
==4104== in use at exit: 1,667 bytes in 43 blocks
==4104== total heap usage: 44 allocs, 1 frees, 2,691 bytes allocated
==4104==
==4104== 4 bytes in 1 blocks are still reachable in loss record 1 of 3
==4104== at 0x4860278: operator new(unsigned int) (in /system/lib64/valgrind/vgpreload_memcheck-arm-linux.so)
==4104== by 0x4DB7483: newlocale (in /system/lib/libc.so)
==4104==
==4104== 427 bytes in 23 blocks are still reachable in loss record 2 of 3
==4104== at 0x485FF38: malloc (in /system/lib64/valgrind/vgpreload_memcheck-arm-linux.so)
==4104== by 0x486CBF3: malloc (in /system/lib/libudf.so)
==4104==
==4104== 1,236 bytes in 19 blocks are possibly lost in loss record 3 of 3
==4104== at 0x485FF38: malloc (in /system/lib64/valgrind/vgpreload_memcheck-arm-linux.so)
==4104== by 0x486CBF3: malloc (in /system/lib/libudf.so)
==4104==
==4104== LEAK SUMMARY:
==4104== definitely lost: 0 bytes in 0 blocks
==4104== indirectly lost: 0 bytes in 0 blocks
==4104== possibly lost: 1,236 bytes in 19 blocks
==4104== still reachable: 431 bytes in 24 blocks
==4104== suppressed: 0 bytes in 0 blocks
==4104==
==4104== For counts of detected and suppressed errors, rerun with: -v
==4104== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Illegal instruction (core dumped) `