Почему pdb отображает "* * * пустой или комментарий", Когда я пытаюсь установить перерыв?


Я работаю с моим приложением Django. По какой-то причине элемент списка присваивается неправильно.

Я пытаюсь установить разрыв там, где, как мне кажется, происходит ошибка. (строка 20)

Я вызываю pdb с этой строкой кода:

import pdb; pdb.set_trace()

Однако внутри кода я не могу установить разрыв.

(Pdb) b 20  
*** Blank or comment  
(Pdb) break 20  
*** Blank or comment  `

Что я делаю не так?

1 4

1 ответ:

Pdb говорит вам, что строка 20 файла, в котором вы находитесь, не содержит кода; она либо пуста, либо просто содержит комментарий. Такая линия никогда не будет фактически выполнена, поэтому точка останова не может быть установлена на ней.

Используйте команду 'list' для просмотра кода файла, в котором вы находитесь в данный момент ('help list' для получения подробной информации об этой команде), а затем установите точки останова в строках, содержащих исполняемый код.

Вы также можете использовать команду "where" для просмотра кадра стека, так как вы можете не быть в правильный файл, потому что вы не смотрите на уровень кадра стека, где вы думаете, что находитесь. Используйте "вверх" и "вниз", чтобы перейти на уровень стека, где вы хотите выполнить отладку.