美文网首页
使用pdb命令行调试python代码

使用pdb命令行调试python代码

作者: Cindy小隐 | 来源:发表于2016-11-25 10:39 被阅读0次

    有时候不得已使用命令行调试,下面介绍运用python的pdb模块进行命令行调试的基本方法。

    进入调试

    有两种方法进入调试:

    1. 在xxx.py中载入pdb模块,并在需要的地方设置好断点,然后在命令行执行 python xxx.py就可以进入调试
    import pdb
    pdb.set_trace()  # 设置断点,在断点代码的上一行写入这行代码
    
    1. 在命令行使用参数进入调试 python -m pdb xxx.py,这样会自动停在第一行。

    设置断点

    # 设置当前脚本断点
    (Pdb)b 10 # 断点设置在当前py的第10行
    # 设置指定脚本断点
    (Pdb)b xxx.py:20 #断点设置到 xxx.py第20行
    # 删除断点
    (Pdb)cl 1 #删除第1个断点
    (Pdb)cl  # 删除所有断点
    

    运行

    (Pdb)n  # 单步运行,相当于IDE中的step over
    (Pdb)s  # 深入方法内部运行,相当于IDE中的step into
    (Pdb)u  # 跳出方法,相当于IDE中的step out
    (Pdb)c  # 跳到下一个断点
    

    查看当前代码位置

    (Pdb) l
     65     newModelFile =outFile.replace("output.txt","model_corpus.pkl")
     66     infoFile = newModelFile.replace("model_corpus.pkl","info.pkl")
     67     topicsFile = newModelFile.replace("model_corpus.pkl","topics.pkl")
     68     vocabInfo, idList = GetDataFromDisk.get_vocab(vocabFile)
     69     pdb.set_trace()
     70  -> Data = GetDataFromDisk.get_data(testFile,vocabInfo,UnuseData)
     71     modelDict,InfoDict,topicsDict = GetDataFromDisk.get_Model(modelFile,outFile)
     72     if Data == 1:
     73         fw=open(outFile,"w")
     74         fw.close()
     75         print -1
    

    第一次执行l命令,会打印出当前代码的上下各5行代码,此后每次执行l命令,都会连续往下打印10行代码,直到.py结尾。

    打印变量

    (Pdb)p param
    # 如果变量是个复杂的对象,可以先打印查看变量的属性,然后查看变量的某个属性值
    (Pdb)p dir(param)
    (Pdb)p param.xxx
    

    结束调试

    (Pdb)q
    

    相关文章

      网友评论

          本文标题:使用pdb命令行调试python代码

          本文链接:https://www.haomeiwen.com/subject/javipttx.html