จะค้นหาไฟล์หลักที่สร้างจากความผิดพลาดของแอพพลิเคชั่น linux ได้ที่ไหน?


19

ฉันพยายามค้นหาสาเหตุของการขัดข้องสำหรับหนึ่งในแอปพลิเคชัน Linux ของฉัน แต่ฉันไม่รู้ว่าแกนกลางกำลังจะไปไหน

cat /proc/sys/kernel/core_pattern
core.%e.%p

ความคิดใด ๆ

คำตอบ:


23

ดัมพ์หลักถูกเขียนในไดเร็กทอรีปัจจุบันของกระบวนการ ณ เวลาที่เกิดความผิดพลาด

แน่นอนว่าต้องมีการเปิดใช้งานการทิ้งขยะหลักโดยค่าเริ่มต้นนั้นจะถูกปิดใช้งาน ตรวจสอบผลลัพธ์ของulimit -cถ้าเป็น 0 จะไม่มีการเขียนไฟล์คอร์ เรียกใช้ulimit -c unlimitedเพื่อเปิดใช้งานการถ่ายโอนข้อมูลหลัก นี่เป็นการตั้งค่าแบบต่อกระบวนการซึ่งสืบทอดโดยกระบวนการที่เริ่มโดยกระบวนการนั้น

หากการถ่ายโอนข้อมูลหลักควรถูกสร้างขึ้น แต่คุณไม่ทราบว่าอยู่ที่ไหนคุณสามารถเริ่มต้นกระบวนการอีกครั้ง (ถ้ามันจะไม่หยุดทำงานทันที) จากนั้นตรวจสอบไดเรกทอรีการทำงานโดยทำls -l /proc/$pid/cwdที่$pidID กระบวนการของกระบวนการ ลิงก์นั้นจะชี้ไปยังไดเรกทอรีการทำงานปัจจุบันของกระบวนการนั้น โอกาสที่การถ่ายโอนข้อมูลหลักจะอยู่ที่นั่น มิฉะนั้นคุณจะต้องทำงานfindในระบบทั้งหมด ...


3
ฉันได้ตรวจสอบ ulimit -c มันไม่ จำกัด แต่ก็ยังไม่มีอะไรในไดเรกทอรีปัจจุบันของกระบวนการ
dcds

1
อาจเป็นไปได้ว่าแอปพลิเคชันตรวจพบข้อผิดพลาดร้ายแรงและถูกยกเลิกนั่นคือไม่ใช่ความผิดพลาด "ของจริง" เช่นการละเมิดการแบ่งกลุ่มหรือคล้ายกันซึ่งจะสร้างคอร์ดัมพ์ เมื่อคุณไม่ให้ข้อมูลเกี่ยวกับแอปพลิเคชันคุณจะไม่สามารถทราบได้
wurtel

1
มันเป็นความผิดพลาดเพราะฉันรู้ว่าทำพอยน์เตอร์โมฆะ
dcds

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.