Để tạo thực thi .out, tôi phải nhập:Lập trình C: Làm thế nào để sử dụng gdb với Makefile và các đối số dòng lệnh?
$: make
$: myprogram.out name.ged
chương trình của tôi kết hợp một đối số dòng lệnh, do đó "name.ged".
Bất cứ khi nào tôi chạy gdb sau khi nhận được một lỗi segmentation (core dumped), tôi nhập:
$: gdb a.out core
(gdb): bt
sau đó tôi sử dụng lệnh trace trở lại, và lợi nhuận gdb:
#0 0x4a145155 in ??()
#1 0x08a16ce0 in ??()
Tôi thậm chí đã cố gắng bằng cách sử dụng lệnh up t di chuyển lên stack, nhưng vẫn không có may mắn. Tôi không thể biết được dòng nào trong chương trình của tôi đang cho tôi lỗi seg. gdb làm việc với các chương trình khác của tôi không liên quan đến một đối số lệnh và Makefile, vì vậy tôi tự hỏi nếu các lệnh của tôi không chính xác.
Bạn cần phải biên dịch với 'cờ -g'. Vì bạn chưa đăng Makefile nên tôi không thể giúp bạn thêm. –
Vì vậy, lệnh sẽ là gcc -g myprogram.out name.ged? – Bonnie
Trong tập tin thực hiện có một lệnh để biên dịch mã (gcc ...) Lệnh đó cần cờ -g để thêm thông tin bổ sung cho gdb hoạt động hiệu quả. –