Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

objdump and ARM vs Thumb

I'm trying to disassemble an object built for ARM with gcc. Unfortunately, objdump is trying to guess whether the code is ARM and Thumb, and is getting it wrong: it thinks my code is Thumb when it's actually ARM.

I see that objdump has an option to force it to interpret all instructions as Thumb (-Mforce-thumb), but it doesn't have one to force ARM mode!

This seems like a really weird omission to me, and it's seriously hampering my ability to get work done (I'm on an embedded device and my only means of debugging is to look at the disassembly). I've tried various approaches, including trying to tell objdump to use an ARM architecture that doesn't support Thumb, but nothing seems to work. Any ideas?

(And yes, I know that the instructions really are ARM...)

like image 233
David Given Avatar asked Aug 25 '11 16:08

David Given


1 Answers

arm-linux-gnueabi-objdump -marm -b binary -D does the trick for me. It doesn't preserve the symbol information though, so it's not quite what you are looking for, but it gives you the disassemble, which is a start.

like image 66
JaviMerino Avatar answered Nov 09 '22 15:11

JaviMerino