【问题标题】:Nasm on Mac OS X - how to compile and read the debugMac OS X 上的 Nasm - 如何编译和读取调试
【发布时间】:2013-06-29 11:33:12
【问题描述】:

我正在尝试学习汇编,我在 Mac OS X (Snow Leopard) 上使用 Nasm v2.10.07。 我可以编译,但我需要阅读 Debug 文件,即 .o 文件。 这是我编译的:

global _main
section.data
M db 5,4,3,2,1
dim equ $-M
section.text
_main:
    mov edi, M
    mov eax, 0
    mov ebx, 1
int 80h

这就是我的编译方式:

nasm -f elf -g -F stabs myfile.asm -o myfile.o

结果如下:

ELF����������������������@�������4�����(�
�������������������������������������������������������������������–������������������������������������?��������������������������������0��M��������������������������������Ä��ê���������������"����������������2������������������*���   �����������P�����������������4��������������`��T����������������:��������������¿��������������������C���    �����������–��0���������������ø����∏����ª���ÕÄ�%define $�The Netwide Assembler 0.98.40 (Apple Computer, Inc. build 11)���.text�.comment�.shstrtab�.symtab�.strtab�.rel.text�.stab�.stabstr�.rel.stab��%d����������������������������Òˇ�������������Òˇ������������������������������������������������������Òˇ�������������,�������������myfile.asm�section.data�M�dim�section.text�_main��%define $_%1 ������%define������������d�����������D����������D���������D��
�������D�   ��������D�
�����%define $_%�myfile.asm��%de����� �����,�����8�����D�����P�����

那么,如果没有那些奇怪的符号,我应该怎么做才能以正确的方式阅读调试呢?

【问题讨论】:

  • 你在编译什么? Mac OS X 不使用ELF,因此查看此类文件的工具有限。
  • This question/answer 应该是你需要的。

标签: macos debugging assembly x86 nasm


【解决方案1】:

要显示.stabs 部分的内容,请使用objdump -g myfile.oobjdump -G myfile.o

要从调试部分获取带有行号的完整源代码,请使用objdump -S -l myfile.o

【讨论】:

  • myfile.o: 不是目标文件
  • 这是注释,还是来自objdump 的错误消息?这些命令对我有用,但您的 objdump 版本可能无法识别 ELF 文件。
猜你喜欢
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
  • 2010-12-15
相关资源
最近更新 更多