Próbuję debugować program w języku Python i wstawiłem klasyczną linię "import pdb; pdb.set_trace()" w funkcji, tuż przed wywołaniem, które generuje ślad stosu. Jednak połączenie to wydaje się być ignorowane, tzn. Nic się nie dzieje i nie otrzymuję zachęty pdb.co może spowodować zignorowanie pdb.set_trace()?
W tym miejscu programu jest tylko jeden aktywny wątek. Nie wykryto żadnego małpowania modułu pdb.
Każda pomoc dotycząca tego, co może spowodować, że wywołanie metody set_trace zostanie zignorowane, jest mile widziane. Dzięki.
informacji Platforma: Debian Squeeze + python ekstrakt 2.6.5
Kod:
import threading
print threading.active_count()
import pdb
print pdb
pdb.set_trace()
print "*****"
root_resource.init_publisher() # before changing uid
wyjściowa:
<lots of stuff>
1
<module 'pdb' from '/usr/lib/python2.6/pdb.pyc'>
*****
<stack trace in init_publisher>
Czy możesz podać kod do odtworzenia tego? Czy z tego powodu działają połączenia 'print'? Czy próbowałeś 'pdb.pm()'? (http://docs.python.org/library/pdb.html#pdb.pm) – katrielalex
Niestety nie jestem w stanie odtworzyć tego łatwo (w przeciwnym razie prawdopodobnie już bym go przybił). print works, pdb.pm() kończy się niepowodzeniem, ponieważ nie mam w tym miejscu śladu stosu (a wyjątek jest zjedzony później przez jakieś rozszerzenie C, więc nie mogę łatwo użyć pm() i python -i –