Как отладить зависший python код, когда я не могу использовать PDB - PullRequest
0 голосов
/ 07 марта 2020

У меня есть некоторый код, который я могу прекрасно выполнять в моей локальной системе. Только когда я запускаю его для автоматического запуска в качестве docker контейнерной программы на сервере, он зависает и истекает время на определенной строке. Я не могу пройти через программу с pdb в этой конкретной среде, и при этом я не могу воспроизвести поведение в среде, где я мог бы использовать отладчик. Я просто вижу в своих журналах cloudwatch, что он останавливается на этой строке и заканчивается время ожидания.

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

(Для справки, реальный сервер - это конечная точка SageMaker AWS, которая не доступна напрямую через s sh или что-нибудь еще, и строка кода, которая истекает, является вызовом AutoGluon model.predict().

Я думаю, что то, что я ищу, потенциально может быть чем-то вроде отладочного декоратора, или способ автоматизировать pdb и обернуть его вокруг вызова функции, чтобы увидеть, где он висит. Или любые лучшие предложения.

...