Python исключение <тип 'exceptions.ImportError'> Нет модуля с именем gdb:
Я только что скомпилировал gdb 7.8
из источника в моем домашнем каталоге на серверной машине под управлением Linux. Я ранее использовал gdb 7.6
и помимо проблем со стабильностью gdb
Сама (причина обновления) все работало нормально.
С момента обновления gdb
когда я бегу cgdb 0.6.7
Я сразу получаю следующее сообщение:
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.
Когда я построил gdb
, Я использовал ./configure --with-python
,
Когда я бегу cgdb
и моя программа достигает segfault, я печатаю backtrace
и получите следующее сообщение:
Исключение Python Нет модуля с именем gdb.frames:
Похоже, я не в состоянии использовать gdb
/cgdb
без поддержки питона. Что я могу сделать, чтобы решить эту проблему?
FWIW; Я не пользуюсь python
Я обычно пишу c++
,
3 ответа
Вы должны указать значение "--data-directory
". Например, если вы загружаете gdb
из каталога сборки команда должна быть:
./gdb -data-directory ./data-directory
затем gdb
может знать где найти python
модуль.
Вы можете отослать это обсуждение.
root@labs:~/gdb-8.1# gdb --version
Python Exception <type 'exceptions.ImportError'> No module named gdb:
gdb: warning:
Could not load the Python gdb module from `/usr/local/share/gdb/python'.
Limited Python support is available from the _gdb module.
Suggest passing --data-directory=/path/to/gdb/data-directory.
....
Попробуйте скопировать Python lib в --data-directory= /path/to/gdb/data-directory
, Мой каталог данных / usr / local / share / gdb / python,
# mkdir -p /usr/local/share/gdb/python/gdb
# cp -rf ~/gdb-8.1/gdb/python/lib/gdb/* /usr/local/share/gdb/python/gdb/
# gdb --version
GNU gdb (GDB) 8.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Я просто столкнулся с этим и хотел поделиться тем, что нашел. Во время компиляции, в частности, на этапе "make install", я заметил сообщения, в которых говорится следующее:
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
Звучит так, будто все в порядке, что у меня нет makeinfo, но на самом деле это привело к ошибке, о которой спрашивал ОП. Когда я установил texinfo
Я потом переустанавливал make install
и запустил GDB без сообщения об ошибке Python.
Просто для завершения вышеуказанных ответов:
Возможно, вы скопировали исполняемый файл GDB в /usr/local/bin
(это мой способ расставить приоритеты по последнему GDB, который я установил в качестве оболочки GDB по умолчанию, не допуская при этом путаницы с GDB Ubuntu по умолчанию). Тогда вам следует учитывать, что вы должны передать параметр data-directory из исходного места в тот, который вы скопировали в /usr/local/bin
, Так что это будет:
/usr/local/bin/gdb --data-directory=/path_to_fully_installed_gdb_folder/data-directory
PS: я сделал это для gdb-8.1 на Ubuntu 16.04