Je connais de J'apprécierais également les conseils où je pourrais trouver le fichier de configuration Edit: J'ai oublié: je gère un processeur de 64 bits, mais je me demandais s'il serait possible de démonter également en 32 bits? Non seulement cela, mais l'OSX's's's's's's's's's's's> gdb code> 's code> est fonctionner différemment que la version standard Merci beaucoup! p>
(En outre, si vous avez une idée où je pourrais trouver un petit désassembleur de C-> MIPS, ce serait très amusant de jouer avec. Mais pas nécessaire!) p> otool -tv code>, mais je préférerais beaucoup utiliser la syntaxe Intel em> plutôt que AT & TS, principalement pour suivre facilement dans un livre et ne pas avoir à regarder Plus de milliers de
% code> s et
$ code>'s. p>
gdb code> S. p>
gnu code> version p>
5 Réponses :
Vous pouvez utiliser A2I pour traduire de AT & T en Syntaxe Intel: http: //membres.lycos .fr / placr / a2i.html p>
Ce n'est pas tout à fait ce que je recherche - les syntaxes sont à la fois assez faciles à lire. C'est plus utile de rendre ma vie plus facile; L'utilisation d'A2I ajoute des étapes, je préfère ne pas prendre, pour une petite récompense. Merci quand même!
Ce lien est maintenant cassé.
avec Objdump Vous pouvez démonter avec -D -M Intel code>, et apparemment
-M code> peut être utilisé pour spécifier l'architecture. p>
Je comprends que - malheureusement, objdump ne fonctionne pas / ne vient pas avec OSX.
Je pense que vous pouvez obtenir objdump sur OSX si vous installez GDB Binutils à l'aide de Macports ou de Homebrew. Je l'avais à un moment donné, mais j'ai préféré utiliser Otool car c'est en fait un outil OSX. Je suis cependant d'accord, j'aimerais que la syntaxe Intel à Otool elle-même.
Si vous installez des binutils à l'aide de Homebrew, le nom de l'exécutable est Gobjdump. C'est un peu floconneux et se bloque après avoir généré la sortie mais ... c'est mieux que rien!
J'ai une version d'Objdump sur Mac mais je ne pouvais pas le faire désassembler X64 Code
Pour répondre à votre deuxième question, si le code a été compilé dans une graisse binaire avec 64 bits et 32 bits, vous pouvez utiliser Notez également que, tandis que Otool ne prend pas en charge la syntaxe Intel, GDB ( otool -arch i386 -tv code> pour démonter le 32- tranche de bits du binaire;
Otool -arch x86_64 -TV code> vous donnera la partie 64 bits (sur Snowleopard, ceci est également le comportement par défaut si aucun
-arch code> est passé). P >
Détoutu de désassembly-arôme Intel code>) et XCode (Préférences -> Débogage -> Style de démontage) Do. P>
Merci! Je vais aller avec ça, bien que je sois toujours curieux de mips :) Dommage sur Otool code> ne pas supporter la syntaxe d'Intel.
Si c'est un obstacle pour vous, vous devez déposer un bogue qui demande que la fonctionnalité soit ajoutée (vous aurez besoin de configurer un compte ADC si vous n'en avez pas déjà): développeur.apple.com/bugreporter
pour GDB, dans votre fichier .gdbinit, ajoutez: p>
Définir le désassemblage-saveur Intel P> blockQuote>
alors ce sera la syntaxe par défaut pour gdb. p>
(Je sais que c'est une ancienne question, mais je souhaite fournir une réponse mise à jour pour les personnes qui viennent ici via des moteurs de recherche).
sur les versions récentes de MacOS (je cours 10.14.5), un < Code> Objdump code> est disponible, qui est basé sur LLVM et est pas em> celui du projet GNU. Il offre une option (cachée) pour démonter à l'aide de Syntaxe Intel. Par exemple, / bin / echo code> peut être désassemblé comme suit: p>
C'est llvm-objdump code>. Sur mon système Linux,
llvm-objdump code> est livré avec des packages Clang / LLVM et prend ces options. Manuel: llvm.org/docs/commandGuide/llvm-objdump.html
C -> MIPS n'est pas le désassemblage, c'est la compilation. C est une source "de haut niveau", pas le code de la machine. goodbolt.org (l'explorateur compilateur) a installé MIPS GCC et avec clang, vous pouvez utiliser
-O3 - Cible MIPS CODE> ou
-O3 -TARGET MIPS64 CODE>. Si Apple Clang sur MacOS est construit avec support, vous pourrez peut-être utiliser
Clang -Target Mips -s -s Code> sur votre bureau.