Как найти текущий шаг, выполняемый запущенным скриптом perl / python? - PullRequest
2 голосов
/ 10 февраля 2012

У меня есть огромный Perl-скрипт, который много раз зависает. Когда он находится в рабочем состоянии, мне нужно выяснить, какой шаг он сейчас выполняет.
Я не хочу "Devel :: Trace" [compileсущность времени], есть ли что-то похожее на стрейс?на который я могу передать pid скрипта, и он покажет мне, что он выполняет во время выполнения.Пожалуйста, дайте мне знать.

~ Мандар.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Что такое "шаг"?

Вы упомянули strace, и strace отслеживает системные вызовы . Если это то, что вы хотите, идите и используйте strace. Он прекрасно работает с Perl.

Если вы хотите отследить, какой оператор Perl выполняется, вы можете запустить скрипт в perld, отладчике Perl. У него есть функция трассировки. Эта функция также предоставляется Devel :: Trace через тривиально простой интерфейс.

(Я понятия не имею, что у вас за проблема с Devel :: Trace. Похоже, вы подразумеваете, что он не показывает, какие операторы выполняются при их выполнении, но это именно то, что он делает.)

0 голосов
/ 10 февраля 2012

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

...