zoukankan      html  css  js  c++  java
  • python程序中的调试:pdb

    python中,也有像c/c++语言的 gdb 一样的调试程序,即pdb;

    只简单说明一个怎么使用它。

    假设已经有了一个python程序名为 test.py, 我们在命令行输入以下内容,即可以进行 python的调试阶段了:

    python -m pdb test.py            // 不加m 不行;
    
    //例如:
    yinheyi@ubuntu:~/grub$ python -m pdb test.py                                 
    > /home/yinheyi/grub/test.py(4)<module>()
    -> def fun():
    (Pdb)

    (至于为什么加 –m 参数或它表示什么意思呢? 查了一下,与 sys.path 有关,加入到 sys.path 列表里的变量不一样,反正不管了;)

    进入以后,我们可以通过 输入 h 得到帮助, 输入 h ,会显示常用的命令,如下所示:

    (Pdb) h
    
    Documented commands (type help <topic>):
    ========================================
    EOF    bt         cont      enable  jump  pp       run      unt   
    a      c          continue  exit    l     q        s        until 
    alias  cl         d         h       list  quit     step     up    
    args   clear      debug     help    n     r        tbreak   w     
    b      commands   disable   ignore  next  restart  u        whatis
    break  condition  down      j       p     return   unalias  where 
    
    Miscellaneous help topics:
    ==========================
    exec  pdb
    
    Undocumented commands:
    ======================
    retval  rv

    此时,比如我们输入: help b,  就会显示 b 命令的用法了;

    下面列出常用的命令:

    s                单步执行(会进行函数)
    n                执行下一行, 不会进行函数;
    c                继续执行,直到遇到断点;
    r                return, 执行代码直到当前函数返回;
    
    p               打印变量值,如: p a, 打印变量a 的值;
    l               查看当前要执行的代码段;默认列出11行(将执行的行的上下各5行);当带一个参数时,会列出给定行的上下各5行; 如果给定两个参数并用逗号分开,分列出所给定范围内的行;
    
    b               设置断点, 可以是行号,也可以是函数名;
    cl              用于清除断点;如果不加任何参数,则清除所以断点, 如果加上用空格分开的断点的编号,则清除它们,如: cl 2 4 ,清除断点2和断点4; 
    disable         使某个断点失效; 后面跟用空格分开的 一系列断点号,如: disable 1 3 4; 
    enable          使某些断点发挥作用; 用法与 disable类似; 
     
    exit             退出;
    
  • 相关阅读:
    关于Maya Viewport 2.0 API 开发的介绍视频
    春节大假
    Some tips about the life cycle of Maya thread pool
    Can I compile and run Dx11Shader for Maya 2015 on my side?
    How to get current deformed vertex positions in MoBu?
    想加入全球首届的 欧特克云加速计划吗?
    三本毕业(非科班),四次阿里巴巴面试,终拿 offer(大厂面经)
    mac、window版编辑器 webstorm 2016... 永久破解方法。
    node 搭载本地代理,处理web本地开发跨域问题
    js 一维数组,转成嵌套数组
  • 原文地址:https://www.cnblogs.com/yinheyi/p/7351584.html
Copyright © 2011-2022 走看看