• Python如何实现单步调试


    遇到大型python项目,如何定位问题和监控程序的运行状态是一个程序员必须掌握的技能,今天小编为你带来python程序的单步调试方法,方便易用,简单易记!

    首先你需要在所调试程序的开头中:import pdb 并在你的代码行设置断点:pdb.set_trace()

    def get_input(Data, SuiteID, CaseID, caseinfolist):  
        global sArge
        sArge=''
        args = []  
        #对于get请求,将参数组合  
        if reqmethod.upper()=='GET':        for j in range(0, caseinfolist[1]):  
                if Data.read_data(SuiteID, Data.casebegin+CaseID, Data.argbegin+j) != "None": 
                    ArgValue =  Data.read_data(SuiteID, Data.casebegin+CaseID, Data.argbegin+j)                if '$$' in ArgValue:#走关联分支
                        args = ArgValue.split('$$')                    #print args
                        corvalue = Correl(args[0], args[1], args[2])
                        pdb.set_trace()   #######这儿设置断点,程序运行到此处就开始了单步调试###########                    if corvalue == []:
                            sArge = 'correlerr'
                            #return sArge
                            #infolog="关联失败"
                            #ret1 = 'NG'
                            #Data.write_data(SuiteID, Data.casebegin+CaseID, 15,infolog,NG_COLOR)
                            #write_result(Date, SuiteID, Data.casebegin+CaseID, 16, ret1)
                        else:
                            sArge=sArge+caseinfolist[2][j]+'='+corvalue[0]+'&'                        
                    else:
                        sArge=sArge+caseinfolist[2][j]+'='+ArgValue+'&'
                    #print sArge
            #去掉结尾的&字符  
            if sArge[-1:]=='&':  
                sArge = sArge[0:-1]     
            #sInput=caseinfolist[0]+sArge    #为了post和get分开方便,不在这里组合接口名,在调用的地方组合接口名。
            return sArge 
        #对于post请求,因为不知道连接格式是=还是冒号,或者是其他的格式,所以不做拼接。直接取参数的第一个作为上传body。
        else:
            sArge=Data.read_data(SuiteID, Data.casebegin+CaseID, 3)        if '$$' in sArge:#走关联分支
                args = sArge.split('$$')            #print args
                corvalue = Correl(args[0], args[1], args[2])            if corvalue == []:
                    sArge = 'correlerr'
                    return sArge            else:                return sArge

    程序开始之后pdb调试界面:

    > c:userswangchaoworkspaceinterface_test	estframe.py(253->  reqmethod.upper()==

    总结:上面的程序是本人私有,因而不能全部上传,在练习pdb时,建议使用自己的程序,pdb单步调试方法总结如下:

    命令


    解释

    break 或 b 设置断点

    设置断点

    continue 或 c

    继续执行程序

    list 或 l

    查看当前行的代码段

    step 或 s

    进入函数

    return 或 r

    执行代码直到从当前函数返回

    exit 或 q

    中止并退出

    next 或 n

    执行下一行

    pp

    打印变量的值

    a

    查看全部栈内变量



















    本文转自xsster51CTO博客,原文链接:http://blog.51cto.com/12945177/1948479 ,如需转载请自行联系原作者





  • 相关阅读:
    Count on a Tree II
    DZY Loves Math
    二次剩余
    exCRT & 骆克强乘法
    CF 585 E Present for Vitalik the Philatelist
    Dirichlet 前缀和的几种版本
    51nod 1630(定积分 + 期望)
    Atcoder刷题小记
    3194. 【HNOI模拟题】化学(无标号无根树计数)
    3754. 【NOI2014】魔法森林(LCT)
  • 原文地址:https://www.cnblogs.com/twodog/p/12138936.html
Copyright © 2020-2023  润新知