Fakta yang malang ialah semua perisian mempunyai pepijat, dan sesetengah pepijat boleh menyebabkan ranap sistem. Apabila ia berlaku, ia sering meninggalkan fail data pada cakera yang dipanggil "buangan teras." Fail ini mengandungi data yang berkaitan tentang masa sistem anda ranap dan boleh membantu menentukan sebab ranap sistem berlaku. Selalunya pembangun meminta data dalam bentuk "traceback" yang menunjukkan aliran arahan yang membawa kepada ranap sistem. Pembangun boleh menggunakannya untuk membetulkan pepijat untuk menambah baik sistem. Jika sistem anda ranap, berikut ialah cara menjana jejak balik dengan mudah.
Kebanyakan sistem Fedora menggunakan Alat Pelaporan Ralat Automatik (ABRT) [1] untuk menangkap fail ranap dan log pepijat secara automatik. Walau bagaimanapun, kaedah ini boleh membantu jika anda melumpuhkan perkhidmatan atau mengalih keluar pakej.
Jika anda mengalami ranap sistem, mula-mula pastikan anda menjalankan perisian terkini. Kemas kini selalunya mengandungi pembetulan untuk pepijat yang telah didapati menyebabkan ralat dan ranap yang serius. Selepas anda mengemas kini, cuba hasilkan semula situasi yang menyebabkan ralat.
Jika ranap sistem masih berlaku, atau anda sudah menjalankan perisian terkini, terdapat alat coredumpctl yang berguna. Program ini membantu mencari dan mengendalikan ranap sistem. Untuk melihat senarai semua pembuangan teras pada sistem anda, jalankan arahan berikut:
coredumpctl list
Jangan terkejut jika anda melihat senarai yang lebih panjang daripada yang dijangkakan. Kadangkala komponen sistem ranap secara senyap di latar belakang dan pulih sendiri. Cara mudah untuk mencari tempat pembuangan sampah hari ini dengan cepat ialah menggunakan pilihan -sejak:
coredumpctl list --since=today
Lajur "PID" mengandungi ID proses yang digunakan untuk mengenal pasti pembuangan. Sila beri perhatian kepada nombor ini kerana anda akan memerlukannya kemudian. Atau, jika anda tidak mahu mengingatinya, tetapkan ia kepada pembolehubah menggunakan:
MYPID=<PID>
Untuk melihat maklumat tentang pembuangan teras, gunakan arahan ini (gunakan pembolehubah $MYPID atau gantikan nombor PID):
coredumpctl info $MYPID
Simbol nyahpepijat terlepas antara data dalam longgokan teras dan arahan dalam kod asal. Data simbolik ini boleh menjadi agak besar. Tidak seperti pakej kebanyakan pengguna yang dijalankan pada sistem Fedora, simbol dipasang sebagai pakej "debuginfo". Untuk menentukan pakej debuginfo yang anda mesti pasang, mula-mula jalankan arahan berikut:
coredumpctl gdb $MYPID
Ini mungkin memaparkan banyak maklumat pada skrin. Baris terakhir mungkin memberitahu anda untuk menggunakan dnf untuk memasang lebih banyak pakej info debug. Jalankan arahan ini dengan sudo [2] untuk memasang:
sudo dnf debuginfo-install <packages...>
Kemudian cuba perintah coredumpctl gdb $MYPID sekali lagi. Anda mungkin perlu melakukan ini berulang kali kerana simbol lain akan dikembangkan dalam jejak balik.
Jalankan arahan berikut dalam penyahpepijat untuk log maklumat:
set logging file mybacktrace.txt set logging on
Anda mungkin mendapati bahawa mematikan penomboran membantu. Untuk pengesanan lama, ini menjimatkan masa.
set pagination off
Sekarang jalankan jejak semula:
thread apply all bt full
Kini anda boleh menaip quit untuk keluar dari penyahpepijat. mybacktrace.txt mengandungi maklumat surih yang boleh dilampirkan pada pepijat atau isu. Atau, jika anda bekerjasama dengan seseorang dalam masa nyata, anda boleh memuat naik teks ke pastebin. Walau apa pun, anda kini boleh memberikan pembangun lebih banyak bantuan untuk menyelesaikan isu.
Atas ialah kandungan terperinci Gunakan coredumpctl untuk mencari dan membetulkan pepijat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!