ubuntu 14.04 วางไฟล์หลักไว้ที่ไหน


20

ฉันได้เปิดใช้งานขนาดไฟล์หลักแบบไม่ จำกัด โดยใช้ ulimit:

ulimit -a
core file size          (blocks, -c) unlimited
...

ฉันเชื่อว่าฉันได้เปิดใช้งานการถ่ายโอนข้อมูลหลัก แต่ฉันไม่สามารถค้นหาไฟล์หลักในบ้านของฉัน var / ... ฯลฯ ...

คุณรู้หรือไม่ว่า Ubuntu ตั้งค่าตำแหน่งการถ่ายโอนข้อมูลหลักไว้ที่ใด


@djf the OP ไม่ได้ระบุว่าโปรแกรมใดทำให้เกิดการถ่ายโอนข้อมูลหลัก มันอาจไม่ได้เป็นรหัสโปรแกรมเมอร์ มันอาจเป็นความสามัคคีสำหรับทุกสิ่งที่เรารู้
Rich Homolka

1
นี่เป็นคำถาม SuperUser อย่างไร นี่เป็นเรื่องเกี่ยวกับการเรียกใช้ดีบักเกอร์ซึ่งโปรแกรมเมอร์เท่านั้นที่ใช้ ควรย้ายข้อมูลกลับไปที่ SO
Homer6

คำตอบ:


7

ฉันคิดว่านี่เป็นเคอร์เนลของ Linux มากกว่าของ Ubuntu เช็คเอาท์

cat /proc/sys/kernel/core_pattern

ตรวจสอบหน้าหลักของไฟล์หลัก


13
ไม่ได้บอกคุณว่าจะวางไฟล์ไว้ตรงไหน คำถามที่ชื่อ Ubuntu 14.04 ไม่ชัดเจนเลยโดยทำตามคำสั่งใน/proc/sys/kernel/core_patternที่ที่จะพบไฟล์
jcalfee314

1
สำหรับฉันแล้ว kernel_pattern kernel pseudofile อ้างอิงโปรแกรมที่เรียกว่า 'apport' ... ซึ่งไม่มี man page หรือเอาต์พุตที่เป็นประโยชน์มาก ดังนั้นยังคงค้นหาแกนทิ้งของฉัน :(
gojomo

1
apport เป็นตัวจัดการแกนเดสก์ท็อปมาตรฐานของ linux ที่รายงานกลับไปที่ distro ของคุณตามปกติ
kkron

จะเปิดโฟลเดอร์นี้ได้อย่างไร? cd /usr/share/apport/apportไม่ทำงาน
mrgloom

32

โดยค่าเริ่มต้นเคอร์เนล Ubuntu ถูกกำหนดค่าให้ใช้ apport เพื่อบันทึก coredumps คุณสามารถลบล้างสิ่งนี้ได้โดยเขียนทับดู/proc/sys/kernel/core_patternส่วน "การตั้งชื่อไฟล์ core dump" ในman coreรายละเอียด ตัวอย่างเช่น:

echo '/tmp/core.%e.%p.%t' | sudo tee /proc/sys/kernel/core_pattern

Apport เขียน core dumps ไปที่/var/crash/_path_to_program.userid.crashแต่จะทำเช่นนั้นสำหรับแอปพลิเคชันที่ติดตั้งจากแหล่งเก็บข้อมูลหลักของ Ubuntu

ข้อมูลเพิ่มเติมเกี่ยวกับ apport: https://wiki.ubuntu.com/Apport


ในการเขียนดัมพ์หลักสำหรับโปรแกรมที่ไม่ใช่แพ็คเกจให้สร้างไฟล์ชื่อ~ / .config / apport / settingsด้วยเนื้อหาต่อไปนี้: [main] unpackaged = true
greuze

การแก้ไข/ proc / sys / kernel / core_patternไม่ทำงานสำหรับฉันใน Ubuntu 18.04
greuze

1

บน Ubuntu 16.04.3 LTS การถ่ายโอนข้อมูลหลักของฉันอยู่ที่:

/var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

ดังนั้นในการเรียกใช้gdbคุณสามารถเรียกใช้:

apt install gdb gdb /path/to/your/binary/application-name /var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

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