Если ваша программа слишком большая и сложная, чтобы ее можно было использовать для пошагового выполнения с помощью pdb или печати каждой строки с помощью модуля trace, тогда вы можете попробовать хитрость из моих дней программирования 8-битных игр.Начиная с Python 2.5 и далее, pdb может связывать код с точкой останова с помощью команды commands
.Вы можете использовать это для печати сообщения и продолжения работы:
(Pdb) commands 1
(com) print "*** Breakpoint 1 ***"
(com) continue
(com) end
(Pdb)
Это напечатает сообщение и продолжит работу при достижении точки останова 1.Определите аналогичные команды для нескольких других точек останова.
Вы можете использовать это для своего рода двоичного поиска вашего кода.Установите точки останова в ключевых местах кода и запускайте его до тех пор, пока он не зависнет.Вы можете узнать по последнему сообщению, которое было последней точкой останова.Затем вы можете переместить другие точки останова и повторно выполнить, чтобы сузить место в коде, где он висит.Промойте и повторите.
Между прочим, на 8-битных микросхемах (Commodore 64, Spectrum и т. Д.) Вы можете вставить значение в область реестра, чтобы изменить цвет границы вокруг экрана.Раньше я устанавливал несколько точек останова, чтобы сделать это разными цветами, поэтому, когда программа запускалась, она отображала психоделическую радугу до тех пор, пока она не зависла, тогда граница изменилась на один цвет, который говорил вам, какой была последняя точка останова.Вы также можете почувствовать относительную производительность различных разделов кода по количеству каждого цвета в радуге.Иногда я скучаю по этой простоте в этих новых "Windows" машинах.