Comments 21
Раз уж пошла такая пьянка, а нет ли для питона отладчика, понимаемого всякими нетбинсами?
0
Думал: «Сейчас на ночь что-нибудь интересное небольшое почитаю...»
+23
скажите, плиз, а чем отладчик выигрывает перед логами?
логи гораздо информативнее, хотя бы потому что ты видишь сразу все значения всех переменных, не нажимая f8 и не следя за изменением значения
это все равно что сравнить посмотреть через подзорную трубу на что-то или снять этой подзорной трубой панораму и рассматривать большую панораму
логи гораздо информативнее, хотя бы потому что ты видишь сразу все значения всех переменных, не нажимая f8 и не следя за изменением значения
это все равно что сравнить посмотреть через подзорную трубу на что-то или снять этой подзорной трубой панораму и рассматривать большую панораму
0
В случае с отладичком (я говорю про полноценные GUI отладчики, например как в JetBrains IDEA) я могу при необходимости менять значения переменных и исправлять код методов непосредственно в процессе отладки. То есть по мере выполнения увидел, что в такой-то строчке забыл прибавить еденицу — исправил код и тут же исправил значение переменой, чтобы не запускать всё заново.
«не нажимая f8 и не следя за изменением значения» — а зачем следить? Есть же условные брэкпойнты.
Еще насчет «ты видишь сразу все значения всех переменных» — если у вас данных много, то логировать всё вы не сможете, иначе закопаетесь в логах. Отладчик же позволяет получить нужные значения в нужное время с нужной детализацией.
Если уж сравнивать, то логирование — это статичная фотография, а отладчик — возможность покапаться с микроскопом и пинцетом.
Да и вообще спор отладчик vs логи имеет мало смысла — всё зависит от задачи и структуры кода, который нужно отладить.
«не нажимая f8 и не следя за изменением значения» — а зачем следить? Есть же условные брэкпойнты.
Еще насчет «ты видишь сразу все значения всех переменных» — если у вас данных много, то логировать всё вы не сможете, иначе закопаетесь в логах. Отладчик же позволяет получить нужные значения в нужное время с нужной детализацией.
Если уж сравнивать, то логирование — это статичная фотография, а отладчик — возможность покапаться с микроскопом и пинцетом.
Да и вообще спор отладчик vs логи имеет мало смысла — всё зависит от задачи и структуры кода, который нужно отладить.
+3
* спор «отладчик vs логи» имеет мало смысла
+3
Ну, почему же. Можно подумать, где лучше применять отладчик, а где отладочную печать.
Лично я поступаю так, практически всегда применяю отладочную печать.
В отладчик лезу тогда, когда программа падает, а в каком месте и из-за чего, неизвестно. Вот тогда отладчик, ИМХО, незаменим.
Лично я поступаю так, практически всегда применяю отладочную печать.
В отладчик лезу тогда, когда программа падает, а в каком месте и из-за чего, неизвестно. Вот тогда отладчик, ИМХО, незаменим.
0
я не говорю выводить в лог значения каждой переменной i
да и grep-ать логи никто не запрещает
да и grep-ать логи никто не запрещает
0
pdb – Интерактивный отладчик
логи — не интерактивны. читая логи нельзя на ходу повлиять на ход выполнения программы. Отладчик так же позволяет проследить за выполнением программы построчно, тоесть можно походить как по своему коду, так и рассмотреть выполнение внутри 3rd party библиотек (бывает часто полезно с той же джангой).
Вообще, выше — правильно про спор отладка vs. логи. Это разные инструменты для разных целей
логи — не интерактивны. читая логи нельзя на ходу повлиять на ход выполнения программы. Отладчик так же позволяет проследить за выполнением программы построчно, тоесть можно походить как по своему коду, так и рассмотреть выполнение внутри 3rd party библиотек (бывает часто полезно с той же джангой).
Вообще, выше — правильно про спор отладка vs. логи. Это разные инструменты для разных целей
+2
Отладчик удобнее использовать, когда непонятно, куда и почему передается управление.
0
в принципе есть еще winpdb, гуй на wx, есть возможность удаленной отладки. в принципе лучший отладчик для питона, имхо
0
pdb хорош. Но не без недостатков (туповатый он, что касается автодополнения и прочих наглядных плюшек).
Нередко для разбора того, что происходит в коде использую в нужном месте
import IPython
ipshell = IPython.core.embed.InteractiveShellEmbed()
ipshell.mainloop()
Очень красиво и наглядно получается. :)
Нередко для разбора того, что происходит в коде использую в нужном месте
import IPython
ipshell = IPython.core.embed.InteractiveShellEmbed()
ipshell.mainloop()
Очень красиво и наглядно получается. :)
0
хотелось бы еще сказать о наличии замечательного плагина для emacs:)
0
Как можно с помощью pdb отлаживать форки?
Запускаю pdb, пишу break /path/to/module:10 (после чего в брякпоинтах он отображается, значит добавился успешно), затем cont, выполняется основной процесс, запускает форки, форки отрабатывают, родитель завершается, отладчик перезапускается со словами «программа завершилась, и я запустился заново»
Запускаю pdb, пишу break /path/to/module:10 (после чего в брякпоинтах он отображается, значит добавился успешно), затем cont, выполняется основной процесс, запускает форки, форки отрабатывают, родитель завершается, отладчик перезапускается со словами «программа завершилась, и я запустился заново»
0
Sign up to leave a comment.
pdb – Интерактивный отладчик