2014-09-01 11 views
7

Ho appena compilato gdb 7.8 dall'origine nella mia directory home su un server che esegue linux. In precedenza avevo utilizzato gdb 7.6 e, a parte i problemi di stabilità con gdb stesso (il motivo dell'aggiornamento), tutto funzionava correttamente.eccezione python <tipo 'exceptions.ImportError'> Nessun modulo denominato gdb:

Dal momento che l'aggiornamento di gdb, quando corro cgdb 0.6.7 immediatamente ottengo il seguente messaggio:

Python Exception <type 'exceptions.ImportError'> No module named gdb: 

warning: 
Could not load the Python gdb module from `/home/username/bin/gdb//python'. 
Limited Python support is available from the _gdb module. 
Suggest passing --data-directory=/path/to/gdb/data-directory. 

Quando ho costruito gdb, ho usato ./configure --with-python.

Quando eseguo cgdb e il mio programma raggiunge un segfault, digito backtrace e ottengo il seguente messaggio:

Python Eccezione Nessun modulo chiamato gdb.frames:

così sembra come se Sono effettivamente in grado di utilizzare gdb/cgdb senza il supporto di python. Cosa posso fare per risolvere questo?

FWIW; Non uso python, di solito scrivo c++.

risposta

11

È necessario specificare il valore di "--data-directory". Ad esempio, se si carica gdb dalla cartella di compilazione, il comando dovrebbe essere:

./gdb -data-directory ./data-directory 

Poi gdb può sapere dove trovare il modulo python.

È possibile fare riferimento a questo discussion.

+1

Non ho una 'directory-dati' nella cartella in cui si trova il file' gdb', quindi fare lo stesso errore. – arman

+0

@Arman: Penso che dovresti specificare il valore '-data-directory' come cartella di build per gdb. –

+1

Se non si ha più l'albero dei sorgenti con 'data-directory' al suo interno, si può provare'/percorso/a/tuo/gdb --data-directory =/usr/share/gdb' (o dove la tua distribuzione lo mette). –