Из того, что я могу сказать, pdb не распознает, когда исходный код изменился между «запусками». То есть, если я отлаживаю, заметьте ошибку, исправьте эту ошибку и перезапустите программу в pdb (т. Е. Не выйдя из pdb), pdb не будет перекомпилировать код. Я все равно буду отлаживать старую версию кода, даже если pdb перечисляет новый исходный код.Как заставить pdb признать, что источник изменился между прогонами?
Так что, pdb не обновляет скомпилированный код при изменении источника? Если нет, есть ли способ сделать так? Я хотел бы иметь возможность остаться в одном сеансе pdb, чтобы сохранить свои точки останова и т. Д.
FWIW, gdb заметит, когда программа отлаживает изменения под ним, хотя и только при перезапуске этой программы. Это поведение, которое я пытаюсь воспроизвести в pdb.
Что я имею в виду «перекладки» является концептуально, что я имею в виду, перезапустив программу питона из командная строка. pdb ясно понимает, что моя программа выходит, поэтому мне интересно, когда она запускает мою программу во второй раз, если я могу заставить ее также перекомпилировать источник по мере необходимости. – user88028
Вы можете попробовать использовать 'reload' изнутри pdb перед тем, как перезапустить его, но опять же, в зависимости от структуры вашей программы, он может быть ненадежным. (FWIW, я считаю это самым большим провалом Python в качестве языка. Исходя из таких сред, как Smalltalk и Lisp, это просто удручает.) –
@NicholasRiley Я хотел бы включить xreload в качестве команды в отладчиках ppanon trepan (trepan3k https: //pypi.python.org/pypi/trepan3k и trepan2 https://pypi.python.org/pypi/trepan2). Это GPL3. Это нормально? Вы автор? – rocky