I'm running on Ubuntu 12.10 64-bit.
I am trying to debug a simple assembly program in GDB. However, GDB's GUI mode (-tui) appears to be unable to locate the source code of my assembly file. I've rebuilt the project in the current directory and searched Google to no avail.
My commands:
nasm -f elf64 -g -F dwarf hello.asm gcc -g hello.o -o hello gdb -tui hello Debug information appears to be loaded; I can set a breakpoint at main(), but the top half of the screen still displays '[ No Source Available ]'.
Here is hello.asm if you're interested:
; hello.asm a first program for nasm for Linux, Intel, gcc ; ; assemble: nasm -f elf -l hello.lst hello.asm ; link: gcc -o hello hello.o ; run: hello ; output is: Hello World SECTION .data ; data section msg: db "Hello World",10 ; the string to print, 10=cr len: equ $-msg ; "$" means "here" ; len is a value, not an address SECTION .text ; code section global main ; make label available to linker main: ; standard gcc entry point mov edx,len ; arg3, length of string to print mov ecx,msg ; arg2, pointer to string mov ebx,1 ; arg1, where to write, screen mov eax,4 ; write command to int 80 hex int 0x80 ; interrupt 80 hex, call kernel mov ebx,0 ; exit code, 0=normal mov eax,1 ; exit command to kernel int 0x80 ; interrupt 80 hex, call kernel
gcc -g) is producing debug info as assembler directives or constructs. So your question does not have real sense. However,gdbis able to run once at a time, step by step, machine instructions.