Nếu bạn biết những gì tên tập tin cốt lõi là, bạn có thể dùng lệnh target core
mà respecifies file lõi mục tiêu:
(gdb) target core core.8577
[New LWP 8577]
Core was generated by `./fault'.
Program terminated with signal 11, Segmentation fault.
#0 0x080483d5 in main() at fault.c:10
10 *ptr = '\123';
(gdb)
Đối với các câu hỏi ngụ ý, lệnh info last signal
là gì?, tôi không biết. Có vẻ như không phải là một.
Tên tập tin cốt lõi có thể được lấy từ các lệnh info target
:
(gdb) info target
Symbols from "/home/wally/.bin/fault".
Local core dump file:
`/home/wally/.bin/core.8577', file type elf32-i386.
0x00da1000 - 0x00da2000 is load1
0x08048000 - 0x08049000 is load2
...
0xbfe8d000 - 0xbfeaf000 is load14
Local exec file:
`/home/wally/.bin/fault', file type elf32-i386.
Entry point: 0x8048300
0x08048134 - 0x08048147 is .interp
0x08048148 - 0x08048168 is .note.ABI-tag
0x08048168 - 0x0804818c is .note.gnu.build-id
0x0804818c - 0x080481ac is .gnu.hash
0x080481ac - 0x080481fc is .dynsym
0x080481fc - 0x08048246 is .dynstr
...
Cảm ơn, như vậy là có một khả năng để đọc các đối số được cung cấp cho chính gdb hoặc truyền qua các đối số cho tập lệnh của tôi như "gdb lõi thực thi --batch -x myscript.py [chèn đối số tại đây]" Bởi vì tôi cũng phát hiện ra khả năng này nhưng tôi cần phải xác định tên của tệp lõi mà thường được đưa ra thông qua các đối số cho gdb – Uhlo
@Uhlo: Lệnh 'info target' hiển thị tên tệp thực thi và tệp lõi, cùng với thêm một chút thông tin. Có lẽ điều đó sẽ làm gì? – wallyk
Cảm ơn bạn rất nhiều !! Phân tích cú pháp này khá khó nhưng ít nhất đó là cách làm việc :) Cảm ơn bạn lần nữa! – Uhlo