Sto provando a disassemblare un oggetto creato per ARM con gcc. Sfortunatamente, objdump sta cercando di indovinare se il codice è ARM e Thumb, e sta sbagliando: pensa che il mio codice sia Thumb quando in realtà è ARM.objdump e ARM vs Thumb
Vedo che objdump ha un'opzione per forzare l'interpretazione di tutte le istruzioni come Thumb (-Mforce-thumb
), ma non ne ha uno per forzare la modalità ARM!
Questa sembra un'omissione davvero bizzarra per me, e sta seriamente ostacolando la mia capacità di portare a termine il lavoro (sono su un dispositivo embedded e il mio unico mezzo di debug è guardare allo smontaggio). Ho provato vari approcci, incluso provare a dire a objdump di usare un'architettura ARM che non supporta Thumb, ma nulla sembra funzionare. Qualche idea?
(E sì, lo so che le istruzioni sono davvero ARM ...)
stai eliminando i file binari (elfo), forse le informazioni erano lì e quindi rimosse. O forse devi aggiungere un interruttore per includere le informazioni di debug nel binario. –
Oggi è 'objdump ... -Mno-force-thumb'. Non posso dire se questo fosse presente nel 2011. Essenzialmente è ARM o Thumb, quindi quando dici 'no-force-thumb' il set di istruzioni è ARM. – JSmyth