Как я могу сказать, где висит мой скрипт на python? - PullRequest
45 голосов
/ 09 августа 2010

Итак, я отлаживаю свою программу на Python и обнаружил ошибку, из-за которой программа зависает, как будто в бесконечном цикле. Теперь у меня была проблема с бесконечным циклом, но когда он зависал, я мог убить программу, и Python выплыл полезное исключение, которое сообщало мне, где программа остановилась, когда я послал ей команду kill. Однако теперь, когда программа зависает, и я нажимаю ctrl-c, она не прерывается, а продолжает работать. Есть ли какой-нибудь инструмент, который я могу использовать, чтобы найти трубку? Я новичок в профилировании, но насколько я знаю, профилировщик может предоставить вам только информацию о программе, которая успешно завершена. Или вы можете использовать профилировщик для отладки таких зависаний?

Ответы [ 12 ]

0 голосов
/ 09 августа 2010

Если ваша программа имеет более одного потока, она может игнорировать ctrl-c, потому что один поток подключен к обработчику ctrl-c, но живой поток (бегущий?) Глух к нему. GIL (глобальная блокировка интерпретатора) в CPython означает, что обычно одновременно может работать только один поток. Я думаю, что я решил мою (возможно) похожую проблему, используя this

0 голосов
/ 09 августа 2010

Сам не использовал, но слышал, что Eric IDE хорош и имеет хороший отладчик.Это также единственная известная мне среда разработки, в которой есть отладчик для Python

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