Довольно большая программа на Python, которую я пишу, запускается, но иногда, после запуска в течение нескольких минут или часов, в непросто воспроизводимый момент зависает и ничего не выводит на экран.
Я понятия не имею, что он делает в данный момент и в какой части кода это.
Как я могу запустить это в отладчике или что-то еще, чтобы увидеть, какие строки кода программа выполняет в момент зависания?
Слишком большой, чтобы помещать «печатные» выражения повсюду.
Я сделал:
python -m trace --trace /usr/local/bin/my_program.py
но это дает мне столько информации, что я ничего не вижу, просто миллионы строк прокручиваются на экране.
Лучше всего было бы, если бы я мог послать какой-нибудь сигнал программе с помощью kill -SIGUSR1 или чего-то еще, и в этот момент программа переместится в отладчик и покажет мне строку, на которой она остановилась, и, возможно, позволит мне пройти через программа тогда.
Я пробовал:
pdb usr/local/bin/my_program.py
и затем:
(Pdb) cont
но что мне делать, чтобы увидеть, где я нахожусь, когда он висит?
Это не исключение и не исключение, просто кажется, что оно чего-то ждет, возможно, в бесконечном цикле.
Еще одна деталь: когда программа зависает, и я нажимаю ^ C, а затем (не уверен, если это необходимо), программа продолжает работать нормально (без каких-либо исключений и без подсказок на экране, почему она остановилась) ,