2014-10-07 17 views
19

uhuntu 14.04 kullanıyorum, burada python3 varsayılan sistem paketidir.gdb'nin kullandığı Python yorumlayıcısı nasıl değiştirilir?

Ben gdb ile Python2.7 programları ayıklamak için istiyorum, ama bu sorunla karşılaştıktan görünmektedir: i gdb olduğumda py komut tercüman bana koyar kullanarak,

, bu yüzden bu komutları koştu tercüman:

Önce tercüman sürümünü kontrol: Sonra

(gdb) py 
>import sys 
>print(sys.version) 
>end 
3.4.0 (default, Apr 11 2014, 13:08:40) 
[GCC 4.8.2] 

Ben tercüman çalıştırılabilir kullanılıyor ne olduğunu kontrol

gdb benim 2.7 tercüman kullanıyor diyor rağmen
12:34]hostname ~ $ls -l /usr/bin/python 
lrwxrwxrwx 1 root root 9 Dec 21 2013 /usr/bin/python -> python2.7 

Yani, aslında başka birini kullanıyor: Sonra bash, ben tercüman kontrol edin. 'Python2.7-dbg' ubuntu paketinin sağladığı python'a özel uzantılarla kullanabilmek için 2.7 tercümana ihtiyacım var, çünkü python 3.4 için henüz böyle bir paket olmadığından ve hatta hata ayıklamak istediğim programlar python 2.7

Sorum, istediğim tercümanı nasıl kullanır?

[DÜZENLE] Btw python3 kaldırmayın. 14.04'te ubuntu yaptım ve sistemimi mahvetti. Bunu tekrar başaramadım. Şu anda onu hiçbir pencere yöneticisi ile kullanıyorum (havalı ve 1337), ama fikri anlıyorsunuz.

+1

python 3 varsayılan neden nedir? –

+0

Sanırım Ubuntu öyle diyor ki ..? Çok fazla okumadım, ancak https://wiki.ubuntu.com/Python/3 bu, bir sürü betiğin python 3'e (hepsi olmasa da) aktarıldığını söylüyor. Her durumda benim gdb python3 –

+0

ile birleştiğinde (veya derleme ya da neyse) İlgili sorun: https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/1241668 –

cevap

14

Yani gdb o söylemez benim 2.7 tercüman

GDB kullanarak söylüyor rağmen. Bu, 3.4.0 kullanıyor ve bu yorumlayıcının GDB'ye bağlı olduğunu ve libpython3.4.a veya libpython3.4.so şeklinde olduğunu söylüyor.

Gerçek Python ikilisinin olmadığı için, (minör) hata burada sys.executable/usr/bin/python döndürür. Bunun yerine /usr/bin/gdb dönmek için daha iyi olurdu.

Ben Bu durumda 2.7 tercüman

gerek, uygun --with-python değerle yapılandırmaya sonra, kaynaktan gdb yeniden gerekecek.

+0

gdb'imin nasıl boğa olduğunu biliyor muyum? (Hangi seçeneklerle demek istedim?) –

+1

@ChanKim: Python kitaplığının hangi sürümünün kurulu GDB'ye bağlı olduğunu görmek için, ldd $ (gdb) | grep python' – kevinarpe

+1

@kevinarpe Teklif ettiğiniz yöntem, yalnızca gdb libpython'a dinamik olarak bağlıysa çalışır. Kullanılan OP yöntemi ('print (sys.sürüm) ') çalışır * her zaman *. –

İlgili konular