2014-11-08 2 views
7

Я пытаюсь использовать pdb для отладки флеш-приложения. Настройка точки останова проста; Я просто использовать b index ломаться, когда индекс() вызывается или b 44, чтобы установить точку останова в строке 44.Отладочная колба с pdb

Breakpoint работает с b 44, который является началом основной, но b index не работает. В командной строке вызывается «Указатель», указывающий, что метод вызывается, но он не останавливается в pdb.

@app.route('/', methods=['GET', 'POST']) 
def index(): 
    print "Index is called" 
    name = None 
    ... 
    return render_template('index.html', form=form, name=name) 

if __name__ == '__main__': 
    manager.run() # line 44 

Что может быть неправильным?

ответ

12

Вы можете сделать это на линии, где вы хотите выполнение ломаться:

import pdb; pdb.set_trace() 

Просто убедитесь, что вы удалите его, прежде чем совершить :).

0

Я пытаюсь использовать pdb для отладки флеш-приложения. Установка точки останова проста; Я просто использую индекс b для разрыва при вызове index() или b 44 для установки точки прерывания по строке 44.

Да, это нормально.

Точка останова работает с b 44, которая является началом основного, но индекс b не работает. В командной строке вызывается «Index», чтобы указать, что метод вызывается, но он не останавливается в pdb.

«Проблема» в том, что вы рассказываете отладчик сломать в начале функции называется main(), но это не функция вы думаете, это, вы увидите, что происходит на самом деле в том, что декоратор заменяет вашу функцию main() другой функцией (обработчик маршрута колбы), поэтому, когда вы делаете b index, вы говорите отладчику, чтобы он остановился в первой строке функции, указанной главным, в коде фляжки.

Try установки b index1 в этом примере:

def deco(fn): 
    def _wrapper(): 
     print "Deco called" 
     return fn() 
    return _wrapper 

@deco 
def index1(): 
    print "Index is called" 
    return "hi stranger!" 

salva = index1 

if __name__ == '__main__': 
    import pdb; pdb.set_trace() 
    index1() 
Смежные вопросы