Apabila menyahpepijat fail teras yang dihasilkan pada distro Linux selain daripada persekitaran pembangunan , jejak tindanan mungkin tidak boleh dipercayai. Boleh laku dipautkan secara dinamik menggunakan perpustakaan kongsi yang mungkin mempunyai pelaksanaan berbeza bergantung pada distro. GDB akan cuba menggunakan versi perpustakaan yang tersedia dalam persekitaran pembangunan, yang mungkin berbeza daripada versi pada sistem pelanggan. Akibatnya, alamat tindanan mungkin dipetakan kepada rutin yang berbeza atau terletak dalam arahan, menunjukkan surih tindanan yang tidak tepat.
Untuk mendapatkan surih tindanan yang bermakna, dapatkan semua perpustakaan kongsi daripada sistem pelanggan dan tetapkan laluan awalan-solib-mutlak dalam GDB. Ini akan mengubah hala GDB untuk menggunakan pustaka pelanggan untuk penyelesaian simbol.
Daripada menasihati pelanggan untuk menjalankan perduaan -g, anda disyorkan untuk:
Pendekatan ini menyediakan maklumat simbolik penuh tanpa menghantar perduaan nyahpepijat kepada pelanggan atau mendedahkan kod sumber sensitif.
Untuk mendapatkan cerapan penyahpepijatan lanjut, pertimbangkan untuk merujuk sumber berikut:
Linux:
Solaris:
Buku ini menawarkan contoh kehidupan sebenar dan teknik lanjutan untuk penyahpepijatan pada Linux dan Solaris, termasuk analisis perhimpunan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahpepijat Fail Teras Dihasilkan pada Pengedaran Linux Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!