Команды для точек останова в файле .pdbrc - PullRequest
3 голосов
/ 06 января 2010

Я хотел бы сохранить команды для точки останова в .pdbrc, что-то вроде:

b 81 
commands 1 
pp foo.attr1 
pp foo.attr2 
end 
b 108 
commands 2 
pp bar.attr1 
pp bar.attr2 
end 

Это позволит автоматизировать настройку среды для сеанса отладки. Однако это не работает с python -m pdb script.py, потому что в строке commands 1 запускается приглашение pdb и запрашивает у меня команды для первой точки останова, игнорируя то, что я написал в .pdbrc; кроме того, он вызывает NameError после того, как я наберу end в приглашении pdb, из-за foo.attr1, foo.attr2 и даже end. То же самое происходит и с остальными точками останова, поэтому я в итоге установил их, но не их команды.

Каков будет правильный способ сделать это? Это вообще возможно?

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Вам, вероятно, не нужен этот набор каждый раз, когда вы используете pdb где-либо. Я бы порекомендовал создать псевдоним, например:

alias setup_myproj b 81;; commands 1;; pp foo.attr1;; pp foo.attr2;; end

Затем вы можете запустить setup_myproj, когда это необходимо.

0 голосов
/ 06 января 2010

Моей первой мыслью было, что команда должна быть определена в одной строке:

commands 1;; pp foo.attr1;; pp foo.attr2;; end;;

Однако, похоже, что это будет работать только в приглашении, и вы получите неправильно:

Usage : commands [bnum]
        ...
        end

если поместить строку выше в .pdbrc

Глядя на pdb.py, выясняется, что автор неправильно обрабатывает определяющие команды в pdbrc.Лично я бы просто временно поместил строки печати в код, который я отлаживал, используя pdbrc, чтобы сохранить интересующие точки останова, чтобы обойти это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...