Comment puis-je dire d'où mon script python est suspendu?

Donc, je suis le débogage mon programme en python et ont rencontré un bug qui fait que le programme pendre, comme si dans une boucle infinie. Maintenant, j'ai eu un problème avec une boucle infinie avant, mais quand il a raccroché, je pouvais tuer le programme python et recraché un utile exception qui m'a dit où le programme fin quand je l'ai envoyé la commande kill. Maintenant, cependant, lorsque le programme se bloque et je ctrl-c, on ne va pas abandonner, mais continue de courir. Est-il un outil que je peux utiliser pour localiser l'accrocher? Je suis nouveau sur le profilage mais d'après ce que je sais un profileur ne peut vous fournir de l'information sur un programme qui a complété avec succès. Ou pouvez-vous utiliser un profiler pour déboguer tel hang ups?

  • Comment savez-vous qu'il est dans une boucle? Est un PROCESSEUR fixé à 100%? Si non, ça pourrait être dans une prise d'attente (en supposant que c'est de faire des e/S réseau).
  • Si elle ne répond pas à Ctrl+C, ce pourrait être parce que la KeyboardInterrupt exception est pris à un certain point. Si vous avez un try: ... except: clause qui n'a pas de nom spécifique des classes d'exception, qui pourrait être responsable.
  • J'ai exactement le même problème et Ctrl+C ne fonctionne pas car il se bloque à l'intérieur d'un C-appeler quelque part. Mon CPU est à 100%.
InformationsquelleAutor Johnny | 2010-08-09