tôi nhận được lỗi này khi tung ra một chương trình trong gdb:Ubuntu 14.04, gcc 4.8.4: in ấn khá gdb không hoạt động vì vấn đề Python
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Traceback (most recent call last):
File "/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py", line 63, in <module>
from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named 'libstdcxx'
Google bật lên báo cáo lỗi này: http://osdir.com/ml/debian-gcc/2014-02/msg00061.html Danh sách báo cáo lỗi này sử dụng lệnh python print sys.path
trên lời nhắc gdb. Tuy nhiên, khi tôi cố gắng sử dụng bất kỳ python trên dấu nhắc gdb, điều này xảy ra:
(gdb) python print sys.path
File "<string>", line 1
print sys.path
^
SyntaxError: invalid syntax
Error while executing Python code.
(gdb) python print "Hello"
File "<string>", line 1
print "HellO"
^
SyntaxError: invalid syntax
Error while executing Python code.
Tôi đang sử dụng Ubuntu 14.04 LTS, thông tin phiên bản có liên quan:
$ gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
$ gdb --version
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
$ python --version
Python 2.7.6
Rõ ràng, một cái gì đó trong thiết lập của tôi là bị hỏng. Nó là python, gdb, hay cái gì khác?
Ubuntu 14.04 xây dựng gdb với python 3, do đó, 'in' bây giờ là một hàm; sử dụng in python (gdb) (sys.path) ' –
Cảm ơn, câu trả lời cho câu hỏi đó. Tuy nhiên, lỗi ban đầu "ImportError: Không có mô-đun có tên 'libstdcxx'" vẫn còn. Điều đó có nghĩa là kịch bản này cần phải được chuyển đổi sang python 3? – Philipp
Tập lệnh trong 'libstdC++. So.6.0.19-gdb.py' phải được cố định theo thông điệp email đó và có thể được chuyển đến python 3 (Tôi chưa xem xét nó thật kỹ). Nhưng nếu mục tiêu của bạn được biên dịch với phiên bản hệ thống của gcc (nghĩa là bạn không biên dịch chéo hay sử dụng phiên bản gcc khác với phiên bản đi kèm với hệ thống), bạn chỉ có thể làm '(gdb) python sys.path .append ("/ usr/share/gcc-4.8/python") '; thì kịch bản 'libstdC++. so.6.0.19-gdb.py' sẽ thêm một thư mục không tồn tại vào đường dẫn. –