gdb bir program başlatırken bu hatayı alıyorum:Ubuntu 14.04, gcc 4.8.4: gdb oldukça baskı nedeniyle Python konunun çalışmıyor
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 bu hata raporu geldi: http://osdir.com/ml/debian-gcc/2014-02/msg00061.html Bu hata raporu listesi gdb komut isteminde python print sys.path
komutunu kullanarak. Ben gdb istemine herhangi piton kullanmaya çalıştığınızda Ancak, bu durumda:
(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.
Ben Ubuntu 14.04 LTS kullanıyorum, ilgili sürüm bilgileri:
$ 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
Açıkçası, benim kurulumunda şeydir kırık. Python, gdb veya başka bir şey mi?
Ubuntu 14.04, python 3 ile gdb'yi oluşturur, bu nedenle 'print' artık bir işlevdir; '(gdb) python print (sys.path)' kullanın –
Teşekkürler, bu soruya cevap veriyor. Ancak, orijinal hata "ImportError: 'libstdcxx adlı bir modül yok" "hala kalır. Bu betiğin python 3'e dönüştürülmesi gerektiği anlamına mı geliyor? – Philipp
'libstdC++. So.6.0.19-gdb.py' dosyasındaki betik, e-posta mesajına göre düzeltilmeli ve muhtemelen python 3'e taşınmış olmalıdır (daha yakından bakmadım). Ancak hedefiniz gcc'nin sistem sürümü ile derlenmişse (yani, çapraz derleme yapmıyorsanız veya sistemle gelen sistemden farklı bir gcc sürümünü kullanıyorsanız), sadece (gdb) python sys.path komutunu kullanabilirsiniz. .Append ("/ usr/pay/gcc-4,8/piton") '; o zaman libstdC++. so.6.0.19-gdb.py' betiğinin yola varolmayan bir dizin eklemesi fark etmez. –