Python的调试器pdb的使用实践总结

一、使用方式

1. 在代码中需要调试的地方,加上两行代码:

    import pdb  # pdb是python自带的包,所以直接导入即可
    pdb.set_trace()

2. 假设我在某测试用例方法中需要调试,则代码如下:

def test_financial_active_list_demand(api_name):
    api_dsl = settings.lookup_depend(api_name)
    requests = settings.resolve(api_name, api_dsl)
    # 调试
    import pdb
    pdb.set_trace()
    for req in requests:
        resp = api.call(req['url'], req['method'], req['params'], req['headers'])
        result = resp.json()

        assert resp.status_code == 2000
        if result['success'] == False:
            logging.debug(resp.text)
        assert result['success']

二. 我常用的几个命令(结合场景使用介绍):

Python的调试器pdb的使用实践总结

1. “查看当前行的代码段”命令:l

首次进入调试模式后,用“l”可查看当前行的代码段,其中“->”就代表当前执行到的地方

2. “打印变量的值”命令:已经执行过的变量名

图中的“api_dsl”是已经执行过的变量,所以直接输入变量名就可打印出对应的值

3. “打印变量的值”命令:未执行到的变量名

图中的“req”是未执行到的变量名,所以输入变量名后,报错“*** NameError: name 'req' is not defined”

4. “执行下一行”命令:n

若想继续执行下一行,就使用“n”命令

5. “查看当前行的代码段”命令:l

执行完下一行后,使用“l”查看当前执行到的地方,可看到“->”下移了一行

6. “打印变量的值”命令:已经执行过的变量名

此时再打印“req”,就可以成功了,因为“req”所在的那行已经执行过了

7. “中止并退出”命令:q

不想继续调试了,就直接退出即可。但是这个退出是直接退出,不会继续执行完程序的哦

8. 若想继续执行完程序,则使用命令“c”即可

上一篇:windbg符号表问题,曾经纠结的东东


下一篇:19c多租户export ORACLE_PDB_SID=PDB1直连pdb