Интерактивно запустить функцию python в GDB, присоединенную к процессу python - PullRequest
0 голосов
/ 11 марта 2020

У меня длительный python процесс. Этот процесс сохраняет только конечные результаты, и я хотел бы сохранить промежуточные результаты без прерывания процесса.

Мне удалось подключить GDB к работающему процессу python, как описано в официальной документации :

gdb python <pid>

Я могу видеть python стек с py-bt, перемещать его с py-up и py-down и печатать переменные с py-locals и py-print.

Теперь я хотел бы вызвать функцию python, которая выводит переменные на диск, однако я не могу понять, как это сделать.

Можно ли вызвать функцию python или метод python объекта в этом процессе в интерактивном режиме из GDB?

Официальная документация ничего об этом не говорит.

Я могу получить python подсказку с помощью команды python-interactive, но она не видит переменные, которые я могу напечатать с помощью py-print. Похоже, команда python-interactive запускает еще один интерпретатор python.

Я также нашел пиразит . Я успешно запустил pyrasite-shell и получил приглашение python. Однако теперь я не знаю, как погрузиться в стек вызовов и извлечь интересующие переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...