GDB lumpuh dengan: ImportError: Tidak ada modul bernama libstdcxx.v6.printers

14

Saya punya masalah dengan GDB. Setiap kali saya mencoba untuk men-debug program C ++, setelah menjalankannya, GDB memberikan kesalahan ini:

(gdb) run
Starting program: /home/errikos/Workspaces/tests/a.out 
Traceback (most recent call last):
  File "/usr/lib/debug/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named libstdcxx.v6.printers
Traceback (most recent call last):
  File "/usr/lib/debug/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named libstdcxx.v6.printers

Setelah itu, GDB terus berjalan (mis. Tidak crash sepenuhnya).

Saya sadar bahwa ada beberapa laporan bug tentang ini (di sini , di sini dan di sini ). Dalam laporan kedua, ada juga klaim bahwa ada perbaikan yang dirilis. Di yang ketiga, ada solusi symlink, yang tidak berhasil untuk saya (dan yang saya tidak suka, bahkan jika itu berhasil).

Adakah yang menemukan solusi untuk ini? Ada paket yang hilang?

Catatan: Saya memiliki build uji Ubuntu Toolchain (ppa: ubuntu-toolchain-r / test) PPA diaktifkan.

errikos
sumber

Jawaban:

7

Ini adalah bug di /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; jika itu beroperasi dengan benar, Anda hanya akan melihat ImportErrorsekali, dan printer cantik akan bekerja.

Lihat http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701935#18 untuk beberapa informasi tentang apa yang salah di sini. Ini berfungsi baik di Debian gcc-4.7, tetapi sampai saat ini tidak bekerja di gcc-4.8Debian. Saya tidak yakin apakah aku bahkan mencoba ini dengan gcc-4.6.

Apapun, Anda dapat menambal file itu agar terlihat di tempat yang tepat.

SamB
sumber
2
Bisakah Anda memberikan contoh tambalan?
Fouric
Ini mungkin telah diperbaiki oleh paket-paket terbaru di ppa: ubuntu-toolchain-r / test, karena saya tidak mendapatkan kesalahan ini lagi. Saya telah kehilangan minat dalam hal ini karena saya belum melakukan banyak pengembangan C / C ++ belakangan ini. Terima kasih atas jawaban Anda!
errikos
Catatan: Matthias Klose sejak itu memindahkan file yang relevan ke tempat di mana ia tidak memicu palsu ImportErrorlagi di Debian tidak stabil.
SamB
Bagaimana saya bisa menambal ini?
becko
@becko: Apa versi libstdc ++ 6 terinstal Anda yang sebenarnya?
SamB