2017-02-14 8 views
0

나는 디버거를 사용할 때 더 능숙 해지고 있으며, http://www.onlamp.com/pub/a/python/2005/09/01/debugger.html에 주어진 예제를 따르고있다. 나는 현재이 스크립트를 시도하고있다 : 나는 https://docs.python.org/2/library/pdb.html#pdb.run에서 알고있는 것처럼Python 디버거 (ipdb)를 사용할 때 NameError

> <string>(1)<module>() 

ipdb> n 
NameError: "name 'test_debugger' is not defined" 

, 그것은 할 수 있어야한다 : 나는 그것을 실행하고 n을 누르면하려고하면, 그러나

#!/usr/bin/env python 

import ipdb 

def test_debugger(some_int): 
    print "start some int>>", some_int 
    return_int = 10/some_int 
    print "end some_int>>", some_int 
    return return_int 

if __name__ == "__main__": 
    ipdb.run("test_debugger(0)") 

을, 나는이 NameErrorn(ext) 명령을 사용하여 실제 버그가 발생할 때까지 실행하십시오. 누군가 여기서 일어나는 일을 설명 할 수 있습니까?

+1

가? – WhatsThePoint

답변

1

언급 한 문서에서 설명은 https://docs.python.org/2/library/functions.html#eval으로 연결됩니다.

당신의 전화가 너무 test_debuggerrun의 맥락에서 정의되지 않은하는 globals 또는 locals DICT를 제공하지 않습니다() ipdb.run 할 것으로 보인다.

당신은 다음과 같은 작업을 할 수 있습니다 :`pdb`와`ipdb` 차이가

ipdb.run("test_debugger(0)", {'test_debugger': test_debugger})