没有创建gdb + nasm调试信息

时间:2012-09-15 21:36:13

标签: debugging assembly gdb nasm

我正在尝试调试我在Ubuntu中编写的一个小.asm文件。然而,我遇到了一个问题,我的符号表没有被加载,并且正在寻求帮助。

我正在编写我的程序如下。

nasm -f elf -g -F dwarf bs.asm
gcc -m32 -g bs.o -o bs

在我运行时生成可执行文件bs

gdb bs 

我收到一条消息,说没有调试符号,当我尝试按

设置断点时
b main 

它表示函数未定义,即使它在文件中,我可以使用./bs

运行它

我读了一些帖子,建议在组装时添加-F矮人,但如果有人有任何见解则没有帮助我会非常感谢您的意见。

3 个答案:

答案 0 :(得分:10)

使用以下命令组装文件: -

nasm -f elf -F dwarf -g file.asm
ld -m elf_i386 -o file file.o

然后使用gdb,

答案 1 :(得分:3)

cpowel2解决了他自己的问题:

解决:万一其他人遇到同样的问题(似乎网上有大量的帖子)我能够通过将文件的.txt部分更改为section .text来解决问题并且gdb马上认出来了。

答案 2 :(得分:0)

SECTION .text

在nasm中 - 文本部分必须为小写,以便gdb将其拾取。