python 断点跟踪
来源:互联网 发布:硬件兼容性检测软件 编辑:程序博客网 时间:2024/05/15 01:40
当有异常发生时,可以利用sys.exc_info()获得异常发生点的TraceBack。但正常状态如何获得TraceBack呢?查了很 久资料都没有找到答案。
想来想去,只找到两种不完美的方案:
【方案一】
主动引发一个异常,从而获得其TraceBack。事实上,traceback.extract_stack里就是这么干的:
1 def extract_stack(f=None, limit = None):
2
3 if f is None:
4 try:
5 raise ZeroDivisionError
6 except ZeroDivisionError:
7 f = sys.exc_info()[2].tb_frame.f_back
8
这种强行引发异常的方法,肯定会降低性能。
【方案二】
利用sys.settrace,自行对调用堆栈进行跟踪。大致这样来做:
1 def mytrace(frame, event, args):
2 if (event == ’call’):
3
4 elif (event == ’return’):
5
6 sys.settrace(mytrace)
这样做,所有的调用都会额外地引发这段自定义处理,显然也会严重影响性能。
想来想去,只找到两种不完美的方案:
【方案一】
主动引发一个异常,从而获得其TraceBack。事实上,traceback.extract_stack里就是这么干的:
1 def extract_stack(f=None, limit = None):
2
3 if f is None:
4 try:
5 raise ZeroDivisionError
6 except ZeroDivisionError:
7 f = sys.exc_info()[2].tb_frame.f_back
8
这种强行引发异常的方法,肯定会降低性能。
【方案二】
利用sys.settrace,自行对调用堆栈进行跟踪。大致这样来做:
1 def mytrace(frame, event, args):
2 if (event == ’call’):
3
4 elif (event == ’return’):
5
6 sys.settrace(mytrace)
这样做,所有的调用都会额外地引发这段自定义处理,显然也会严重影响性能。
0 0
- python 断点跟踪
- VS05无法跟踪断点
- 消息断点 RUN跟踪
- python断点
- python断点
- Delphi部分断点不能跟踪
- TraceMe---消息断点+Run跟踪
- BPL,DLL中跟踪断点
- TraceMe---消息断点+Run跟踪
- 利用断点跟踪infolog提示的错误
- VS 2005变量跟踪及断点调试
- VS调试技术-断点与跟踪点
- VS调试技术-断点与跟踪点
- EBMIDE——断点跟踪输出
- 消息断点跟TRACE跟踪跟方便
- 学OD -- 消息断点 RUN跟踪
- vs2008不能调试无法跟踪断点
- 无法debug断点跟踪JDK源代码
- Transport (VMDB) error -44: Message. The VMware Authorization Service is not use
- 关于self.view.frame.size.width赋值会出现expression is not assignable 错误
- C++中const的用法
- Win7下的django+python+mysql的安装
- 基于WF4.0流程平台开发过程中的知识积累(三)书签实现子流程
- python 断点跟踪
- 写出我人生
- 将大写字母转换成小写字母
- python *,**
- iOS获取系统键盘的高度
- 杨辉三角(c语言)
- JavaScript: 详解Base64编码和解码
- C++里static的用法
- IOSMD5加密算法