Tôi tìm thấy bãi chứa lõi trong ubfox 16.04LTS ở đâu?


14

Tôi có một chương trình C ++ thực hiện những gì nó phải làm, nhưng phải có một số vấn đề với con trỏ, vì nó gặp sự cố ở cuối và tạo ra kết xuất lõi. Vấn đề của tôi là tôi không thể tìm thấy tập tin cốt lõi, vì vậy tôi không thể gỡ lỗi nó.

Tôi đã thử

ulimit -c unlimited
ulimit -a

và bây giờ kích thước của tệp được đặt thành không giới hạn, nhưng tôi vẫn không thể tìm thấy lõi. Tôi đã thử trong mọi thư mục được viết ở đây nhưng dường như không có tệp lõi nào được tạo.

Tôi có thể tìm thấy nó ở đâu?


Thư mục hiện tại, hoặc/var/crash
ví von

4
Mặc dù đúng trong hầu hết các trường hợp, @waltinator, đôi khi cần phải kiểm tra /var/log/apport.log, bởi vì các phiên bản Ubuntu hiện đại sử dụng Apport, có thể can thiệp vào việc bán phá giá lõi theo những cách không rõ ràng. Xem stackoverflow.com/a/18368068/1772379 để biết thêm thông tin.
Ben Johnson

Câu trả lời:


12

Trong Ubuntu, các bãi chứa lõi được xử lý bởi Apport và có thể được đặt trong /var/crash/. Nhưng nó bị vô hiệu hóa theo mặc định trong bản phát hành ổn định.

Để bật Apport, hãy chạy: sudo systemctl enable apport.servicehoặc sudo service apport start.


Để vô hiệu hóa, hãy chạy: sudo systemctl disable apport.servicehoặc sudo service apport stopđể quay lại phương thức đổ lõi thông thường. Xem: Làm cách nào để bật hoặc tắt Apport? .

Để vô hiệu hóa vĩnh viễn, chỉnh sửa /etc/apport/crashdb.conftệp và nhận xét dòng sau:

'problem_types': ['Bug', 'Package'],

bằng cách thêm một biểu tượng băm ( #) ở đầu dòng.

Để tắt báo cáo sự cố (trở lại bình thường), hãy xóa biểu tượng băm (giống như trước đây).


Bạn cũng có thể kiểm tra core_pattern, cách xử lý các lõi lõi được xử lý bởi kernel:

$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c

Vì vậy, ngay cả các tập tin cốt lõi bị vô hiệu hóa bởi ulimit, apportvẫn sẽ chụp sự cố.

Xem thêm:


3

Đối với những người này: (trong trường hợp của tôi - Ubuntu 16.04 và 18.04 và một ứng dụng tùy chỉnh) /var/crashvẫn trống, vì vậy cách nhanh chóng để xử lý việc tạo lõi (với điều kiện là bạn đang sử dụng cài đặt dựng sẵn ulimit có liên quan )

sudo sysctl -w kernel.core_pattern=core.%u.%p.%t # to enable core generation

systemctl restart apport # to restore default apport settings
# which, by the way, were "|/usr/share/apport/apport %p %s %c %d %P" (without quotes)


Nguồn:


Đơn giản, đơn giản, làm việc.
Taekahn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.