Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Как отладить TUI приложение?


Автор: sluge 30.12.2014, 12:21
привет всем,
У меня есть TUI приложение под solaris. Когда я его запускаю под отладчиком, TUI окно захватывает консоль и я не могу вводить команды в интерфейс отладчика. Кто нибудь знает, как запустить TUI приложение в отдельной консоли?

Автор: tzirechnoy 30.12.2014, 20:08
Всё слегка завист от отладчика, но не сильно.
Самый прямолинейный вариант -- переназначить ввод и вывод программы в команде run отладчика. Что-то вроде, если тебе принадлежыт /dev/vt/1 (и на нём ничего особенно не запущено, т.е. ничего не читает и не пишэт его), и ты запускаешь откуда-то ещё -- то  run myprog </dev/vt/1 >/dev/vt/1 2>&1 

Другой вариант -- сначала запустить программу (в одном окне), а потом подключиться к ней (в другом окне) по PID. Для dbx -- это dbx - $PID, для gdb -- gdb -p $PID

Ну и, ещё, у gdb есть режым сервера -- запускаешь gdbserver localhost:5678 progname в соответствии с мануалом в одном терминале, gdb в другом терминале и говоришь в промпте gdb: target remote localhost:5678

Добавлено через 46 секунд
Ну и да, банальное, пользоваться отладчиком для отладки программы, от которой у тебя есть исходный код -- занятие муторное и довольно безсмысленное.

Автор: bilbobagginz 31.12.2014, 14:59
на питоне отладку можно делать одним из сл. способов:
  • полноценная среда (IDE) - https://www.jetbrains.com/pycharm, http://pydev.org/
  • winpdb
  • rpdb2 + ipython
если работаешь локально, и с графической средой, то это просто.

если работаешь в текстовом режиме, то для отладки обычно добавляется строка импорта дибаггера + координаты.
открой отлаживаемое приложение в одном вирт. терминале. а к отладчику подключайся из другого
тогда первый терминал полностью отдан в распоряжение приложения, а второй- отладчику.

(как и предложили)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)