Python程序里用pdb方法进行调试时出现错误,pythonpdb,调试的测试程序impor


调试的测试程序

import pdbimport sysdef add(num1=0, num2=0):    print('add')    return int(num1) + int(num2)def main():    print(sys.argv)    pdb.set_trace()  # 添加断点    addition = add(sys.argv[1], sys.argv[2])    print(addition)if __name__ == '__main__':    main()

注释:由于segmentfault限制了pre的height,为了可读所以分为两部分截取

使用pdb单步调试step进入add函数内部后为什么会出现两条相同的return int(num1) + int(num2)语句?

$ python test.py 1 2['test.py', '1', '2']> /home/testenv/test.py(9)main()-> addition = add(sys.argv[1], sys.argv[2])(Pdb) s  # step into add function--Call--> /home/testenv/test.py(3)add()-> def add(num1=0, num2=0):(Pdb) n> /home/testenv/test.py(4)add()-> print('add')(Pdb) nadd> /home/testenv/test.py(5)add()-> return int(num1) + int(num2)(Pdb) n--Return--> /home/testenv/test.py(5)add()->3-> return int(num1) + int(num2)

下面也出现了两条相同的print语句,只是一条是main(),另外一条是main()->None。而且print(addition)后程序不是应该退出吗?为什么最后还要回到main才能退出?

(Pdb) n> /home/testenv/test.py(10)main()-> print(addition)(Pdb) n3--Return--> /home/testenv/test.py(10)main()->None-> print(addition)(Pdb) n--Return--> /home/testenv/test.py(12)<module>()->None-> main()(Pdb) n退出成功

Google 搜索 「Power pdb user」

看完+稍微实践, 你就能精通pdb

PS: 官方关于 pdb 的文档, 我觉得内容太少, 根本没有把pdb给介绍清楚

编橙之家文章,

评论关闭