Rumah >pembangunan bahagian belakang >C++ >Mengapa GDB Tiada Kod Sumber Semasa Menyahpepijat Program C?

Mengapa GDB Tiada Kod Sumber Semasa Menyahpepijat Program C?

Linda Hamilton
Linda Hamiltonasal
2024-11-13 01:33:01330semak imbas

Why is GDB Missing Source Code When Debugging C Programs?

Ralat Kod Sumber Tiada dalam GDB

Masalah:

Apabila menggunakan GDB untuk nyahpepijat C program yang membuang pengecualian, pengguna menghadapi mesej ralat yang menunjukkan bahawa raise.c tiada. Ralat ini menghalang penyahpepijatan kod sumber penuh.

Betulkan:

Untuk menyelesaikan isu ini dan mendayakan penyahpepijatan kod sumber penuh dalam GDB, ikut langkah berikut:

1. Pasang Debuginfo Versi Libc6:

Pastikan pakej libc6-dbg dipasang pada sistem anda. Pakej ini mengandungi maklumat penyahpepijatan untuk pustaka C.

2. Konfigurasi Sistem Pakej untuk Pengendalian Kod Sumber:

Jika belum dikonfigurasikan, dayakan sistem pakej anda memuat turun dan memproses pakej kod sumber dengan:

  • Memasang dpkg-dev
  • Mendayakan baris deb-src dalam /etc/apt/sources.list dan menjalankan sudo apt kemas kini

3. Muat Turun Kod Sumber untuk Perpustakaan C:

  • Buat direktori untuk storan kod sumber (cth., /opt/src)
  • Muat turun kod sumber yang sepadan dengan pustaka C yang dipasang versi menggunakan sumber apt libc6

4. Cari Direktori Kod Sumber dan Tetapkan Laluan GDB:

  • Tentukan lokasi kod sumber yang dijangka menggunakan arahan sumber maklumat (gdb)
  • Alihkan atau symlink kod sumber ke lokasi yang dijangkakan atau gunakan (gdb) tetapkan laluan gantian untuk mengubah hala GDB ke laluan yang betul

Dengan langkah ini selesai, GDB kini sepatutnya memaparkan kod sumber dengan betul semasa menyahpepijat program C.

Atas ialah kandungan terperinci Mengapa GDB Tiada Kod Sumber Semasa Menyahpepijat Program C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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