Tôi đang chạy trên Ubuntu 12,10 64bit.GDB than phiền Không có nguồn nào
Tôi đang cố gỡ lỗi chương trình lắp ráp đơn giản trong GDB. Tuy nhiên chế độ gui của GDB (-tui) dường như không thể tìm thấy mã nguồn của tập tin lắp ráp của tôi. Tôi đã xây dựng lại dự án trong thư mục hiện tại và tìm kiếm trên google để không có kết quả, vui lòng giúp tôi ở đây.
lệnh của tôi:
nasm -f elf64 -g -F dwarf hello.asm
gcc -g hello.o -o hello
gdb -tui hello
thông tin gỡ lỗi dường như được nạp, tôi có thể thiết lập một breakpoint ở main() nhưng nửa trên màn hình vẫn nói '[Không có Nguồn Trước]'.
Đây là hello.asm nếu bạn quan tâm:
; 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
Đã xóa xem câu trả lời bên dưới vì lý do. –
Một chương trình được sản xuất bởi một bộ lắp ráp không có thông tin gỡ lỗi. Trình biên dịch (ví dụ: 'gcc -g') đang tạo thông tin gỡ lỗi như chỉ thị hoặc cấu trúc của trình biên dịch. Vì vậy, câu hỏi của bạn không có ý nghĩa thực sự. Tuy nhiên, 'gdb' có thể chạy một lần tại một thời điểm, từng bước, hướng dẫn máy. –
Bạn có giải pháp nào cho việc này không? –