gdb + nasm debug info not being created

2019-04-25 09:15发布

问题:

I am trying to debug a small .asm file that I wrote in Ubuntu. I am however running into an issue where my symbol table is not being loaded and was looking for some help.

I am compiling my program as follows.

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

which produces the executable bs when I run

gdb bs 

I get a message that says no debugging symbols and when I try to set a break point by

b main 

it says function not defined even though its in the file and I can run it using ./bs

I read a couple posts that suggested adding the -F dwarf when assembling but that didn't help if anyone has any insight I would greatly appreciated your input.

回答1:

Assemble your file with the following commands :-

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

and then use gdb,



回答2:

cpowel2 solved his own problem:

SOLVED: Just in case anyone else was having the same issue (it seems like there are a ton of posts on the net) I was able to resolve the issue by changing the section .txt portion of my file to section .text and gdb recognized it right away.



回答3:

SECTION .text

; in nasm - a text section has to be in lower case for gdb to pick it up.