Me molesta cada vez que uso -XX:+PrintAssembly
con Hotspot y tengo que leer la horrible sintaxis de AT & T.Hotspot7 hsdis PrintAssembly Intel Sintaxis
¿Hay alguna manera de decirle que use la sintaxis Intel?
Me molesta cada vez que uso -XX:+PrintAssembly
con Hotspot y tengo que leer la horrible sintaxis de AT & T.Hotspot7 hsdis PrintAssembly Intel Sintaxis
¿Hay alguna manera de decirle que use la sintaxis Intel?
Todo lo que necesita es analizar algunas opciones en el código dis-asm.h y binutils
para Intel Asm (que yo también prefiero) sólo tiene que añadir el siguiente
-XX:PrintAssemblyOptions=intel
Si es necesario combinar opciones lo hacen con comas al igual que
-XX:PrintAssemblyOptions=intel,hsdis-help
Cualquier cosa no se reconoce como una opción hsdis se alimenta al desensamblador, estas opciones son las mismas que se ven lista de los
objdump --help
... <SNIP A lot of --help text %<> ...
The following i386/x86-64 specific disassembler options are supported for use
with the -M switch (multiple options should be separated by commas):
x86-64 Disassemble in 64bit mode
i386 Disassemble in 32bit mode
i8086 Disassemble in 16bit mode
att Display instruction in AT&T syntax
intel Display instruction in Intel syntax
att-mnemonic
Display instruction in AT&T mnemonic
intel-mnemonic
Display instruction in Intel mnemonic
addr64 Assume 64bit address size
addr32 Assume 32bit address size
addr16 Assume 16bit address size
data32 Assume 32bit data size
data16 Assume 16bit data size
suffix Always display instruction suffix in AT&T syntax
Report bugs to <http://www.sourceware.org/bugzilla/>.
¡Guau, eso es genial! Aunque realmente podrían mencionarlo en alguna parte, incluso sabiendo que debería ser 'PrintAssemblyOptions', parece que no puedo encontrar documentación sobre eso con google. – Voo
No creo que haya ninguna forma de hacerlo. Pero esto es lo que he encontrado: Here es la fuente de hsdis
. Puede cambiar el Makefile
pasando -masm=intel
a GCC. Y si funciona, de ahora en adelante, +PrintAssembly
debería comenzar a producir el ensamblaje de sintaxis de Intel.
Aquí está el step by step procedure para obtener la fuente, construir y finalmente obtener el hsdis-arch.so
que es el que hace el trabajo de desmontaje!
No he probado esto por mi cuenta. Me gustaría que conseguir que esto funcione :)
Si nada funciona, esto debería hacer que se sienta cómodo con AT&T Syntax :)
Gracias, pero ¿dónde exactamente agregaría '-masm = intel' en el archivo MAKE? Acabo de hacer 'CFLAGS + = -masm = intel' pero eso no funciona. – Voo
'CFLAGS' es el lugar correcto, pero no estoy seguro de por qué no funciona para usted. ¿Se está generando el 'hsdis-arch.so'? ¿Alguna diferencia después de agregar esta opción de depuración? –
El archivo so se genera muy bien, pero el resultado es el mismo que sin él (es decir, todavía AT & T) - tampoco hay mensajes de error. Y sí, ¿tengo nasm instalado en mi camino si eso es importante? – Voo
Por cierto, ¿Qué sistema está ejecutando en? –
@Pavan Como entendí, había un binario para todos los sistemas operativos, así que esperaba poder trabajar de manera cruzada. Mayormente openSUSE y Windows. Tristemente, como indica tu respuesta, si puedo pasar tal opción mientras compilo, dudo que haya una mejor manera de hacerlo. Intentaremos eso. – Voo
Para Windows, ¿debería obtener la sintaxis de Intel de forma predeterminada? –