[llvm-dev] llvm-bjdump and ELF-ARM/Thumb

Johan Wehrli via llvm-dev llvm-dev at lists.llvm.org
Sun Jun 19 23:47:09 PDT 2016


After some digging, I found people with the same problem:

https://llvm.org/bugs/show_bug.cgi?id=15795 <https://llvm.org/bugs/show_bug.cgi?id=15795>
https://groups.google.com/forum/#!topic/llvm-dev/Kf3jXQLUJtM <https://groups.google.com/forum/#!topic/llvm-dev/Kf3jXQLUJtM>

Does anyone know if there is a solution now? I can’t find anything.

> On 20 Jun 2016, at 07:37, Johan Wehrli via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> The standard objdump does not recognised the format.
> 
> It works if I used an arm-linux-androideabi-objdump from the Android ndk but I am using the clang API to read binary inside my soft.
> 
> This is why I was only working with llvm-objdump.
> 
>> On 19 Jun 2016, at 15:03, Bruce Hoult <bruce at hoult.org <mailto:bruce at hoult.org>> wrote:
>> 
>> What happens if you use the standard bunutils objdump e.g. from macports package arm-elf-binutils (if you're on a Mac)?
>> 
>> 
>> On Mon, Jun 20, 2016 at 12:45 AM, Johan Wehrli via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>> Hi Everyone,
>> 
>> When I used llvm-objdump to disassemble an ELF armv7 or thumb I have this error message:
>> 
>> llvm-objdump: warning: invalid instruction encoding
>> 
>> This message appears directly into the output and the output is mostly wrong (the invalid instruction create a shift in the addresses) :
>> 
>> 
>>     1a6d:       ff 2f e1 08     stmeq   r1!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, sp} ^
>>     1a71:       30 90 e5 00     rsceq   r9, r5, r0, lsr r0
>>     1a75:       10 a0 e1 00     rsceq   r10, r1, r0, lsl r0
>>     1a79:       00 53 e3 1e     cdpne   p3, #14, c5, c3, c0, #0
>> llvm-objdump: warning: invalid instruction encoding
>>     1a7e:       2f 01 01 00     andeq   r0, r1, pc, lsr #2
>> llvm-objdump: warning: invalid instruction encoding
>>     1a83:       e3 13 ff 2f     svchs   #16716771
>> llvm-objdump: warning: invalid instruction encoding
>> 
>> The binaries I try to read are c++ dynamic libraries for Android.
>> 
>> I have used the following parameters:
>> 
>> -llvm-objcdump mylib.so -d -arch=arm
>> -llvm-objcdump mylib.so -d -arch=armv7
>> -llvm-objcdump mylib.so -d -arch=thumb
>> 
>> or with the following triples:
>> 
>> armv7-none-linux-android
>> thumbv7-none-linux-android
>> 
>> Does anyone know why I have this error? Am I missing some input parameters?
>> 
>> This is strange because it works great on iOS binaries (both thumb or arm).
>> 
>> Greetings,
>> 
>> Johan
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160620/56be5f2e/attachment.html>


More information about the llvm-dev mailing list