我正在尝试调试我在Ubuntu中编写的一个小.asm文件。然而,我遇到了一个问题,我的符号表没有被加载,并且正在寻求帮助。
我正在编写我的程序如下。
nasm -f elf -g -F dwarf bs.asm
gcc -m32 -g bs.o -o bs
在我运行时生成可执行文件bs
gdb bs
我收到一条消息,说没有调试符号,当我尝试按
设置断点时b main
它表示函数未定义,即使它在文件中,我可以使用./bs
运行它我读了一些帖子,建议在组装时添加-F矮人,但如果有人有任何见解则没有帮助我会非常感谢您的意见。
答案 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将其拾取。