Skip to content

valgrind-android happened unhandled instruction and WARNING unsupported flags DT_FLAGS_1=0x421 #1

@kevinjh443

Description

@kevinjh443

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) `

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions