У меня длительный 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. Однако теперь я не знаю, как погрузиться в стек вызовов и извлечь интересующие переменные.