Comment objdump gérer pour afficher le code source avec l'option-S?
Est-il une référence au fichier source dans le fichier binaire? J'ai essayé de courir sur les cordes de la binaire et n'a pas pu trouver aucune référence à la source de fichier répertoriés...
- Bonne question, mauvaise réponse (à date). Voir aussi Comment puis-je obtenir les lignes du code source en ligne avec l'assemblée de sortie à l'aide de GCC?
Vous devez vous connecter pour publier un commentaire.
objdump
utilise le NAIN informations de débogage compilé dans le binaire, qui renvoie le nom du fichier source. Si le binaire n'est pas compilé avec les informations de débogage, ouobjdump
ne peut pas trouver le fichier source, vous ne recevez pas le code source de votre sortie seule assemblée.Vous ne voyez pas le nom du fichier source lorsque vous utilisez
strings
sur le binaire, parce que le NAIN utilise la compression.objdump
(avec un inconnu options) pour afficher la source entrelacée avec le démontage? Pourriez-vous fournir les étapes avec les commandes?-g
option pourgcc
permet aux informations de débogage, et la-S
option pour objdump dissambles avec une source entrelacée. Mais la question n'était pas en train de demander comment faire; l'interlocuteur savait déjà qu'ils étaient au lieu de demander comment cela est mis en œuvre (commentobjdump
trouve la source de entrelacé).Le nain de l'information dans un système binaire magasins de la correspondance entre les instructions(le pointeur d'instruction ou IP) et le fichier source et le numéro de ligne. Le fichier source est spécifiée à l'aide du chemin d'accès complet de sorte qu'il peut être trouvé, même si le binaire est déplacé autour de. Pour voir ces informations, vous pouvez utiliser
objdump --dwarf=decodedline <binary>
(le binaire, bien sûr doit être compilé avec-g
).Une fois que vous dites
objdump -S <binary>
il utiliser ce nain d'infos à vous donner le code source ainsi que le démontage.objdump
à fournir à la fois le démontage avec le code source numéros de lignes entrelacées.Ma compréhension est que pour
objdump
pour afficher le code source à partir du code binaire, il y a une condition préalable: le NAIN informations de débogage doit être compilé dans le binaire. (pargcc -g sourcefile
ougcc -gdwarf-2 sourcefile
)Et de traitement de ce NAIN de l'information
objdump
est en mesure d'obtenir le code source comme @vlcekmi3 et @vkrnt réponduobjdump
(avec un inconnu options) pour afficher la source entrelacée avec le démontage? Pourriez-vous fournir les étapes avec les commandes?