Linux下Python基础调试

http://blog.163.com/liuyuhuan0915@126/blog/static/78265448201141662828820/

当手边没有IDE,面对着python调试犯愁时,你就可以参考下本文;(pdb 命令调试)

参考:http://docs.python.org/library/pdb.html 和 (pdb)help

首先你选择运行的 py

python -m pdb myscript.py

(Pdb) 会自动停在第一行,等待调试,这时你可以看看 帮助

(Pdb) h

说明下这几个关键 命令

>断点设置

(Pdb)b 10 #断点设置在本py的第10行

或(Pdb)b ots.py:20 #断点设置到 ots.py第20行

删除断点(Pdb)b #查看断点编号

(Pdb)cl 2 #删除第2个断点

>运行

(Pdb)n #单步运行

(Pdb)s #细点运行 也就是会下到,方法

(Pdb)c #跳到下个断点

>查看

(Pdb)p param #查看当前 变量值

(Pdb)l #查看运行到某处代码

(Pdb)a #查看全部栈内变量

>如果是在 命令行里的调试为:

import pdb

def tt():

pdb.set_trace()

for i in range(1, 5):

print i

>>> tt()

#这里支持 n p c 而已

> (3)tt()

(Pdb) n

带参调试:

python -m pdb makePackage youtuberev_1.0_csky.ipk

常用命令说明:
l #查看运行到哪行代码

n #单步运行,跳过函数

s #单步运行,可进入函数

p 变量 #查看变量值

b 行号 #断点设置到第几行

b #显示所有断点列表

cl 断点号 #删除某个断点

cl #删除所有断点

c #跳到下一个断点

r #return当前函数

exit #退出

更多的命令http://docs.python.org/library/pdb.html

(Pdb) dir([1,2])
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
(Pdb) p chk.winfo_x()
30
(Pdb) p chk.winfo_y()

检查Python对象

http://www.cnblogs.com/shanyou/archive/2007/02/12/648479.html

linux python调试技巧的更多相关文章

  1. python 调试技巧

    1.以前都是用print来定位哪里报错,后面发现一个新的调试技巧 import pdb for i in range(nrows): : content = table.row_values(i) p ...

  2. 【转】linux内核调试技巧之一 dump_stack

    原文网址:http://blog.csdn.net/dragon101788/article/details/9419175 在内核中代码调用过程难以跟踪,上下文关系复杂,确实让人头痛 调用dump_ ...

  3. linux内核调试技巧之一 dump_stack【转】

    在内核中代码调用过程难以跟踪,上下文关系复杂,确实让人头痛 调用dump_stack()就会打印当前cpu的堆栈的调用函数了. 如此,一目了然的就能看到当前上下文环境,调用关系了 假设: 遇到uvc_ ...

  4. linux内核调试技巧之addr2line

    addr2line工具是一个可以将指令的地址和可执行影像转换为文件名,函数名和源代码行数的工具.这在内核执行过程中出现崩溃时,可用于快速定位出出错的位置,进而找出代码的bug. 用法 addr2lin ...

  5. 【转载】Python 代码调试技巧

    https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/ Python 代码调试技巧 张 颖2012 年 5 月 03 日发布 ...

  6. Linux c c++ 开发调试技巧

    看到一篇介绍 linux c/c++ 开发调试技巧的文章,感觉挺使用,哪来和大家分享. 通向 UNIX 天堂的 10 个阶梯Author: Arpan Sen, 高级技术人员, Systems Doc ...

  7. Python开发环境Wing IDE的Blender的Python代码调试技巧

    Wing IDE是一个集成开发环境,可用于开发.测试和调试为Blender编写的Python代码,Blender是一个开源的3 D内容创建系统.Wing IDE提供自动完成.调用提示.强大的调试器.以 ...

  8. linux内核调试指南

    linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...

  9. Linux命令行技巧

    Linux命令行技巧 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格 ...

随机推荐

  1. bzoj hash+map+set

    先对原串分组hash,查询就是看某一区间内是否出现某值. 可以每个值存一个集合,保存这个值出现的位置.(也可以建可持久化值域线段树) map<int,set<int> >很省事 ...

  2. Codeforces Round #283 (Div. 2) A. Minimum Difficulty 暴力水题

    A. Minimum Difficulty time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  3. Codeforces Round #280 (Div. 2) E. Vanya and Field 思维题

    E. Vanya and Field time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  4. wikioi 1294 全排列 dfs

    1294 全排列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold       题目描述 Description 给出一个n, 请输出n的所有全排列 输入描述 Inpu ...

  5. 探秘GO语言《比较C#与GO的性能》

    这段时间也来学学GO语言,听说它的性能相当的棒棒,我就拿C#来和它做比对一下. 这里只是单纯了做了for循环的比对,看看谁的循环快 C# 代码: static void Main(string[] a ...

  6. php curl伪造referer

    CURL方式: SOCKET方式: file_get_contents方法: 通过上面的代码,我们就把referer地址伪装为http://www.xxxx.com,你可以写一段代码: $_SERVE ...

  7. 【Eclipse提高开发速度-插件篇】安装多语言Propertys编辑工具

    安装的的时候能够通过 Help>Eclipse Marketplace的 搜索方式安装 或者 Help>Install New Software Name:Propertys URL:ht ...

  8. SmartProg2 Universal, ISP capable programmer

    http://www.elnec.com/products/universal-programmers/smartprog2/ 40 powerful TTL pindrivers provide H ...

  9. patch补丁命令 P1 P0 P2

    http://fancyxinyu.blog.163.com/blog/static/1823213662013719115245699/ http://blog.chinaunix.net/uid- ...

  10. 【Nginx】ngx_event_core_module模块

    ngx_event_core_module模块属于事件模块,它是其他事件类模块的基础.它主要完毕下面任务: 创建连接池 决定使用哪些事件驱动机制 初始化将要使用的事件模块 以下分析该模块的代码. ng ...