2010-11-11 36 views
6

Tôi đã viết một chương trình mẫu với kill(pid, SIGABRT), nhưng quá trình nhận được SIGABRT không tạo ra bất kỳ kết xuất lõi nào. Làm thế nào tôi có thể lấy tệp kết xuất lõi bằng cách gửi tín hiệu SIGABRT?SIGABRT cách tải tệp tin lưu trữ?

Trả lời

6

Bạn cần phải thiết lập các lõi đổ ulimit một cái gì đó ở trên zero trước chạy quá trình mà bạn muốn hủy bỏ:

ulimit -c unlimited 
7

có thiết lập các giới hạn tập tin dump lõi như không giới hạn bằng cách sử dụng

ulimit -c unlimited 

Và cũng kiểm tra đường dẫn của việc tạo kết xuất lõi, thông thường, kết xuất lõi được tạo trong thư mục hiện tại của quá trình nhưng bằng cách cho đường dẫn trong /proc/sys/kernel/core_pattern bạn có thể thay đổi đường dẫn và tên của thế hệ lõi, giống như dưới đây

echo /var/log/mycore > /proc/sys/kernel/core_pattern 

bây giờ lõi sẽ được tạo thành /var/log/mycore.pid.

cũng Vui lòng tham khảo cốt lõi người đàn ông, nếu bạn vẫn không thấy cốt lõi sau đó gửi cho chúng tôi đầu ra dưới lệnh

cat /proc/sys/kernel/core_pattern 

Bạn cũng có thể có một cái nhìn trong http://yusufonlinux.blogspot.com/2010/11/debugging-core-using-gdb.html

Các vấn đề liên quan