Bagaimana cara menginstal simbol debug untuk paket yang diinstal?

8

Saya mencoba melihat bagaimana program bekerja dengan menjalankannya oleh debugger 'Qt Creator'. Untuk orientasi yang lebih baik, saya juga ingin melihat utilitas sistem (inti) sepenuhnya di jendela tumpukan panggilan seperti yang saya gunakan dari MS Visual Studio 6.0, tidak hanya untuk melihat kode rakitan mereka. Untuk utilitas, debugger 'Qt Creator' hanya menampilkan bahwa simbol debug tidak tersedia. (Kadang-kadang, sistem menghasilkan laporan bug untuk pengembangnya; dialog laporan bug telah meminta menginstal simbol seperti itu hanya untuk program tertentu.) Bagaimana saya bisa mendapatkan simbol debug inti? (Tanpa menerjemahkan keseluruhan versi Ubuntu. Saya menggunakan 'Update Manager' untuk menginstal pembaruan secara teratur. My

/ sys / kernel / debug / x86
direktori hanya berisi satu file kosong. Saya belum menemukannya di 'pusat perangkat lunak Ubuntu' dan saya juga tidak melihat apakah beberapa paket di http://packages.ubuntu.com/precise/x11/ adalah yang saya cari.) Terima kasih!

Tomáš Pečený
sumber
1
Lihat halaman ini .
saiarcot895
@ saiarcot895 Berhasil, tolong rumuskan komentar Anda sebagai jawaban sehingga saya bisa menjadikannya sebagai yang diterima. Di mana simbol debug ditempatkan di sistem file saya? Terima kasih!
Tomáš Pečený

Jawaban:

8

Paket di Ubuntu menyimpan simbol debuggingnya dalam repo yang terpisah. Untuk mengunduh simbol debugging ini, jalankan (salin dan tempel):

printf "deb http://ddebs.ubuntu.com %s main restricted universe multiverse\n" $(lsb_release -cs){,-updates,-security,-proposed} | \
 sudo tee -a /etc/apt/sources.list.d/ddebs.list

untuk menambahkan tautan repo ke /etc/apt/sources.list.d/ddebs.list(Ini memudahkan untuk menghapus repo). Atau, Anda juga dapat menyalin masing-masing debtautan ke Sumber Perangkat Lunak dan menambahkannya dari sana (Perhatikan bahwa Anda mungkin harus mengganti $(lsb_release -cs)dengan rilis Ubuntu yang sedang Anda jalankan).

Untuk mengunduh simbol debugging package, Anda dapat menginstal package-dbgsymatau, dalam beberapa kasus package-dbg,. Perhatikan bahwa paket dari PPA tidak memiliki simbol debugging yang tersedia dari repo, dan bahwa tanggung jawab pengelola untuk menyediakan paket yang berisi simbol debugging, biasanya dalam paket yang bernama package-dbg.

Simbol debugging dipasang di /usr/lib/debug, meskipun gdbsecara otomatis membaca dalam simbol debugging jika tersedia dan bahwa Anda tidak perlu secara manual menentukan lokasi untuk melihat. Tergantung pada versi Kompatibilitas Debhelper dari paket, simbol debugging mungkin terletak di folder dengan nama ID bangun yang terletak di dalam .build-id( >= 9), atau mungkin terletak relatif di mana executable akan diinstal ( < 9). Misalnya, jika Anda mencari lokasi simbol debugging /usr/bin/zip, dan versinya kurang dari 9, itu akan masuk /usr/lib/debug/usr/bin/zip.

Untuk menghapus semua simbol debugging dan repo, jalankan sudo apt-get remove \.*-dbgsymuntuk menghapus semua -dbgsympaket, dan sudo rm /etc/apt/sources.list.d/ddebs.listuntuk menghapus repo simbol debugging.

saiarcot895
sumber
5
Hanya sebuah catatan bahwa PPA sekarang menghasilkan paket dbgsym. Tetapi Anda perlu menambahkan baris deb dengan "main / debug", seperti: "deb ppa.launchpad.net/USER/PPA/ubuntu main / debug"
Michael Terry
Pada bionik, repo ddebs tidak memiliki file Rilis untuk keamanan-bionik
Paulo Marcel Coelho Aragão
5

Menambahkan ke jawaban saircot859. Anda juga harus menginstal kunci GPG untuk repositori seperti dijelaskan di sini: https://wiki.ubuntu.com/Debug%20Symbol%20Packages

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01 C8CAB6595FDFF622
Evan
sumber
Halaman wiki yang tertaut telah diperbarui. Di Ubuntu 18,04 LTS dan yang lebih baru, gunakan sudo apt install ubuntu-dbgsym-keyring.
user7610