Rumah > Tutorial sistem > LINUX > Gunakan coredumpctl untuk mencari dan membetulkan pepijat

Gunakan coredumpctl untuk mencari dan membetulkan pepijat

PHPz
Lepaskan: 2024-02-16 09:45:18
ke hadapan
1288 orang telah melayarinya

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.
使用 coredumpctl 查找并处理 BUG

Mula menggunakan coredumpctl

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
Salin selepas log masuk

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
Salin selepas log masuk

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>
Salin selepas log masuk

Untuk melihat maklumat tentang pembuangan teras, gunakan arahan ini (gunakan pembolehubah $MYPID atau gantikan nombor PID):

coredumpctl info $MYPID
Salin selepas log masuk
Pasang pakej info debug

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
Salin selepas log masuk

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...>
Salin selepas log masuk

Kemudian cuba perintah coredumpctl gdb $MYPID sekali lagi. Anda mungkin perlu melakukan ini berulang kali kerana simbol lain akan dikembangkan dalam jejak balik.

Tangkap jejak semula

Jalankan arahan berikut dalam penyahpepijat untuk log maklumat:

set logging file mybacktrace.txt
set logging on
Salin selepas log masuk

Anda mungkin mendapati bahawa mematikan penomboran membantu. Untuk pengesanan lama, ini menjimatkan masa.

set pagination off
Salin selepas log masuk

Sekarang jalankan jejak semula:

thread apply all bt full
Salin selepas log masuk

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!

sumber:linuxprobe.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan