[工具资源] 一个为了线上定位 BUG 的小工具

简单的python debug辅助小工具 开发本插件的起因:线上错误无法重现,如果出错的时候记录下所有函数调用过程的变量数据,那么就可以更好

简单的python debug辅助小工具

开发本插件的起因:线上错误无法重现,如果出错的时候记录下所有函数调用过程的变量数据,那么就可以更好的分析错误原因!

使用方法(可以参考demo.py文件)

# coding:UTF-8

from debugger import debugger

def a1():

a2()

def a2():

a3()

def a3():

a4()

def a4():

a5()

def a5():

a6()

def a6():

a = 5

a7()

def a7():

b = 100

c = 0

return b / c

if __name__ == '__main__':

debugger.set_throw_error(False)

debugger.run_func(a1, {})

总的来说,引入debugger对象,然后传递要执行的函数即可。

debugger对象函数说明

set_throw_error(是否抛出出错函数) # 设置是否抛出错误

run_func(需要执行的函数, 参数字典) # 执行函数

set_output_func(结果处理函数) # 设置处理出错时捕捉到的所有数据(该函数接收一个参数,捕捉数据对象)

捕捉数据对象(结构如下图)

{

"e": 出错信息,

"error": 错误栈堆字符串,

trace: [

{

"func_name": "函数名",

"data": [

"type": "变量类型",

"name": "变量名字",

"value": 如果是基本类型,则为数值,如果是字典或者对象或者列表,则为像data这样子的字典(下面以此类推)

],

"code_line": 函数在文件第几行,

"filepath": "文件路径"

},...

]

}

在线解释捕捉到的数据对象

打开网址: http://htmlpreview.github.io/?https://github.com/yubang/python_debug/blob/master/web/index.html

在网页粘贴数据对象字符串,然后点击分析,然后可以点击分析即可。

[工具资源] 一个为了线上定位 BUG 的小工具

未登录用户
全部评论0
到底啦