Python调试不如强类型的语言方便,显示调用栈有时非常必要,inspect模块很好用

import inspect

inspect.stack()

inspect.stack()返回的是一个函数栈帧列表如(已经做了一个for e in inspect(): print e 转化)

(<frame object at 0x7f6ec27b2050>, '/usr/lib/python2.7/dist-packages/oslo/config/cfg.py', 495, '_is_opt_registered', ['    st = inspect.stack()\n'], 0)
(<frame object at 0x7f6ec2807d00>, '/usr/lib/python2.7/dist-packages/oslo/config/cfg.py', 1163, '_register_opt', [' if _is_opt_registered(self._opts, opt):\n'], 0)
(<frame object at 0x7f6ec280bb90>, '/usr/lib/python2.7/dist-packages/oslo/config/cfg.py', 1710, 'register_opt', [' return group._register_opt(opt, cli)\n'], 0)
(<frame object at 0x1a4f180>, '/usr/lib/python2.7/dist-packages/oslo/config/cfg.py', 1591, '__inner', [' return f(self, *args, **kwargs)\n'], 0)
(<frame object at 0x1a805f0>, '/usr/lib/python2.7/dist-packages/oslo/config/cfg.py', 1723, 'register_opts', [' self.register_opt(opt, group, clear_cache=False)\n'], 0)
(<frame object at 0x1a941f0>, '/usr/lib/python2.7/dist-packages/oslo/config/cfg.py', 1587, '__inner', [' result = f(self, *args, **kwargs)\n'], 0)
(<frame object at 0x1ac0bb0>, '/usr/lib/python2.7/dist-packages/nova/openstack/common/db/options.py', 131, '<module>', ["CONF.register_opts(database_opts, 'database')\n"], 0)
(<frame object at 0x7f6ec2870aa0>, '/usr/lib/python2.7/dist-packages/nova/config.py', 21, '<module>', ['from nova.openstack.common.db import options\n'], 0)
(<frame object at 0x7f6ec381c050>, '/usr/lib/python2.7/dist-packages/nova/cmd/api.py', 27, '<module>', ['from nova import config\n'], 0)
(<frame object at 0x7f6ec4f4cc20>, '/usr/bin/nova-api', 6, '<module>', ['from nova.cmd.api import main\n'], 0)

Python 显示调用栈的更多相关文章

  1. boost::coroutine 无法显示调用栈

    boost::coroutine 无法显示调用栈(金庆的专栏)一例因 boost::format() 格式化参数个数错误造成的 coredump,因为使用了 boost::coroutine, 无法显 ...

  2. python 打印调用栈

    import traceback def BBQ(): traceback.print_stack() 引入 traceback 包,在某个函数中执行 traceback.print_stack().

  3. 在WinDBG中查看调用栈的命令

    命令 ========== k k命令显示的是一定数量的栈帧, 其中帧的数量是由.kframes命令来控制的, 默认值是256. kp 5 显示调用栈中前5个函数以及他们的参数. kb 5 显示调用栈 ...

  4. python: 错误处理try详解 ,traceback调用栈, 调试(logging)

    摘录:https://www.liaoxuefeng.com/wiki/1016959663602400/1017598873256736 错误处理 调试 错误处理 高级语言都会使用内置的一套try. ...

  5. python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)

    昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...

  6. python错误处理—try…catch…finally、调用栈分析

    高级语言包括python一般都内置了一套try…catch…finally的错误处理机制: >>> try: ... print('try...') ... r = 10 / 0 . ...

  7. Python错误 -- try/except/finally 、调用栈、记录错误、抛出错误

    Bug:程序编写有问题造成的错误,称之为Bug.    debug:调试 注意:bug是程序本身有问题.有缺陷.系统漏洞 异常:完全无法在程序运行中预测的错误,例如写入文件的时候,磁盘满了,写不进去了 ...

  8. GDB 运行PYTHON 脚本+python 转换GDB调用栈到流程图

    http://tromey.com/blog/?cat=17 http://blog.csdn.net/cnsword/article/details/16337031 http://blog.csd ...

  9. 老男孩Python高级全栈开发工程师三期完整无加密带课件(共104天)

    点击了解更多Python课程>>> 老男孩Python高级全栈开发工程师三期完整无加密带课件(共104天) 课程大纲 1.这一期比之前的Python培新课程增加了很多干货:Linux ...

随机推荐

  1. 5、用Numpy实现结构体

    1.结构数组: 在C语言中我们可以通过struct关键字定义结构类型,结构中的字段占据连续的内存空间,每个结构体占用的内存大小都相同,因此可以很容易地定义结构数组.和C语言一样,在NumPy中也很容易 ...

  2. 10、C++函数

    1.定义函数和函数调用: 1.1.定义函数: 可以将函数分为两类,没有返回值的函数,和有返回值得函数,没有返回值得函数被称为void函数,其通用格式如下: void funtionname (para ...

  3. QT中QWidget、QDialog以及MainWindow的区别

    参考 http://blog.csdn.net/u011619422/article/details/47311101 QT中QWidget.QDialog以及MainWindow的区别 QWidge ...

  4. 关于Apache显示port 80 in use 无法解决的情况,这个世界对程序媛太不友好了

    学到Ajax时下载了Apache,百度的安装教程,配置文件参数分别是: 1. httpd.conf里的80改为8000或者其他的,共三处(用记事本打开,按ctrl+F找方便) 2. httpd-ssl ...

  5. JavaScript 中this 初步理解笔记

    Javascript中函数中的this通常指向的是函数的拥有者,这个拥有者就是上下文执行对象:另外一点需要注意,this只能在javascript函数内部使用.

  6. hdu6183 Color it 线段树动态开点+查询减枝

    题目传送门 题目大意: 有多次操作.操作0是清空二维平面的点,操作1是往二维平面(x,y)上放一个颜色为c的点,操作2是查询一个贴着y轴的矩形内有几种颜色的点,操作3退出程序. 思路: 由于查询的矩形 ...

  7. Oracle PL/SQL之GROUP BY GROUPING SETS

    [转自] http://blog.csdn.net/t0nsha/article/details/6538838 使用GROUP BY GROUPING SETS相当于把需要GROUP的集合用UNIO ...

  8. 3.Exadata 软件体系结构

    整体架构和 smart scan Aasm Ehcc (混合例压缩 和 存储索引) SCAN Service 和 server pool DB SERVER -> DB instance -&g ...

  9. linux 运维基础之http协议详解

    引言 这尼玛博客还得自己在这里写,难受一匹本来排版好的...每次都这样嗨....本内容属于借鉴资源,侵权删! HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系 ...

  10. linux 入门测验

    cd . 当前目录.. 返回上一级目录 ../../../返回多级目录 grep "目标信息" 目标地址 -v :显示没有被匹配的信息 mkdir -p:创建多级目录 mkdir ...