2014-01-29 5 views
0

Мне нужно отлаживать большие программы с вложенными вызовами функций. Хотелось бы это s.t. всякий раз, когда возникает исключение, я просто останавливаю выполнение в этой точке внутри любой функции, в которой я могу быть. Затем я могу попробовать различные исправления ошибки и перейти дальше.Отладка Советы для Python

В то время как я использовал try, кроме того, мне здесь нужно, чтобы я мог остановиться внутри любой функции, независимо от того, как вложенной может быть вызов. Итак, чтобы сделать это вручную, мне пришлось бы обернуть код каждой функции вокруг try-except! например:

def fun1: 
    try: 

    except: 
    pdb.set_trace() 

И это было бы очень громоздко писать. Кроме того, всякий раз, когда я сталкиваюсь с исключением, я перехожу прямо к блоку except, для больших функций это потребует перезагрузки с самого начала, которое будет занимать время. Поэтому в основном у меня есть это (амбициозное) требование выполнения каждого линии кода в его собственном примерочные, за исключением блока, как:

def func1: 
    try: 
    line1 
    except: 
    pdb.set_trace() 

    try: 
    line2 
    except: 
    pdb.set_trace() 

Есть некоторые автоматический, или умный способ соорудить такую ​​систему? Спасибо заранее.

ответ

1

Любая хорошая IDE будет иметь возможность добавлять точки останова для отладки вашего кода. Я лично использую PyCharm от Jetbrains jetbrains.com/pycharm. Вы легко можете добавить контрольные точки и шаг за шагом через свой код. Он также автоматически останавливает выполнение при исключении, и вы можете манипулировать значениями. Как вы сейчас разрабатываете свой код на Python?

Смежные вопросы