Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cách debug core dump trong C/C++

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

  1. Core dump mặc định ở /proc/sys/kernel/ (hoặc thư mục hiện tại tùy cấu hình ulimit -c).
  2. Chương trình phải biên dịch với flag -g (giữ thông tin debug).
  3. 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