Khi tiến trình bị OS kết thúc do lỗi (thường là truy cập con trỏ không hợp lệ: NULL, vượt vùng nhớ), OS ghi trạng thái bộ nhớ vào file core dump để phân tích sau.
Quy trình debug
- Core dump mặc định ở
/proc/sys/kernel/(hoặc thư mục hiện tại tùy cấu hìnhulimit -c). - Chương trình phải biên dịch với flag
-g(giữ thông tin debug). - Chạy GDB:
$ gdb ten_thuc_thi core
GDB mở core file, cho phép xem stack trace, biến, register tại thời điểm crash.
Lệnh GDB hữu ích
bt/backtrace— xem call stack.info locals— biến cục bộ.frame N— chuyển khung stack.print bien— xem giá trị biến.
Tài nguyên học GDB: IBM DeveloperWorks GDB Tutorial