локальные переменные недоступны для отладчика python

Я пытаюсь выяснить, что вызывает SEGFAULT в моем приложении, и мне удалось отследить его до определенного модуля. Я установил трассировку в рамках определенной функции модуля:

def algorithm_wrapper(*args, **kwargs):        
    _version = version
    if "Version" in kwargs:
        _version = kwargs["Version"]
        del kwargs["Version"]
    algm = _framework.createAlgorithm(algorithm, _version)
    pdb.set_trace()
    _set_logging_option(algm, kwargs)

Если я хочу проверить локальные переменные _version и algm, я получаю следующую ошибку:

-> _set_logging_option(algm, kwargs)
(Pdb) _version
    NameError: name '_version' is not defined
(Pdb) algm
    NameError: name 'algm' is not defined

Я в растерянности, впервые нахожу эту ошибку. Пожалуйста помоги!


person jmborr    schedule 03.03.2014    source источник
comment
_framework.createAlgorithm должен как-то возиться с прицелом. Попробуйте превратить его в noop и посмотреть, сохраняется ли проблема.   -  person George Khaburzaniya    schedule 21.05.2017


Ответы (1)


Я не эксперт по pdb, и это может быть просто опечатка в вашем образце кода, а не то, что вы на самом деле пробовали, но вам не нужно вводить следующее в pdb, чтобы напечатать переменную?

(Pdb) p _version

По сравнению с просто

(Pdb) _version

Извините, если это не то, что происходит, это единственное, что я вижу не так. Удачи!

person Nacho    schedule 14.03.2014