С другой стороны, в оболочке Python GDB (
Код: Выделить всё
piПример сеанса:
Код: Выделить всё
$ gdb -q
(gdb) pi
>>> gdb
>>> gdb.TabTab
[i]... nothing ...[/i]
>>> show TabTab
Display all 148 possibilities? (y or n)
ada exec-direction record
agent exec-done-display remote
annotate exec-file-mismatch remoteaddresssize
[i][...][/i]
Код: Выделить всё
$ python
Python 3.[i]X.Y ...[/i]
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.TabTab
sys.abiflags sys.hash_info
sys.addaudithook( sys.hexversion
sys.api_version sys.implementation
[i][...][/i]
Неудачные попытки:
- Это решение
заставляет оболочку выводить буквальную вкладку, когда Tab нажимается после sys. или аналогичного.
Код: Выделить всё
import readline import rlcompleter readline.parse_and_bind("tab: complete")
По крайней мере, это работает для завершения идентификатора табуляции () действительно перечисляет некоторые записи)Код: Выделить всё
aTabTab
Похоже, это из-за некоторого взаимодействия с GDB - get_completer_delims каждый раз сбрасывается до некоторого значения, и если приведенный выше код запускается, то завершение табуляции вне gdb также переключается в «режим Python». - Используйте фон_zmq_ipython вызывает ошибку сегментации, поскольку некоторые API-интерфейсы gdb (например, gdb.Value) не могут быть прочитаны вне основного потока.
- Используйте IPython.embed() также заставьте Tab выводить буквальный символ табуляции.
- Официальная документация gdb https://sourceware.org/gdb/current/onli ... etion.html ничего не упоминает о Python.
Подробнее здесь: https://stackoverflow.com/questions/702 ... completion
Мобильная версия