如果调试是唯一的调试方式,那么编程也要兼顾。今天元妹就给大家分享一款代码调试神器——Cyber??brain。Cyber??brain是一个免费开源的Python代码调试解决方案,可以可视化程序执行以及每个变量的变化方式,将程序员从调试的痛苦中解放出来。它主要有以下3个功能:回溯变量变化查看程序执行的每一个状态,包括变量的值循环调试Cyber??brain不会改变你的工作流程,运行一个程序(从vscode或命令行,都可以),一个新的面板将被打开,程序执??行将被直观地显示出来。如何安装Cyber??brainCyber??brain由一个Python库和各种编辑器/IDE集成组成。目前,它支持VSCode。要安装Cyber??brain:pipinstallcyberbraincode--install-extensionlaike9m.cyberbrain您也可以直接从VSCode安装。如何使用假设你想跟踪一个函数foo,只需要用@trace装饰一下:fromcyberbrainimporttrace#Asofnow,你只能有一个@tracedecoratorinthewholeprogram.#Wemaychangethisinversion2.0,见https://github.com/laike9m/Cyber??brain/discussions/73@trace#Disabletracingwith`@trace(disabled=True)`defffoo():...下面的gif演示了工作流程:使用Cyber??brain,Cyber??brain可能会与其他调试器发生冲突。如果设置断点并使用VSC的调试器,Cyber??brain可能无法正常运行。如果您打开了多个VSCode窗口,跟踪图将始终在第一个窗口中创建。当有多个装饰器时,@trace应该是最里面的装饰器。@app.route("/")@tracedefhello_world():x=[1,2,3]返回“你好,世界!”Cyber??brain-数据流分析和变量跟踪与其他调试器不同,Cyber??brain可以显示准确的数据流,并且可以在程序的每个状态中保持不变。不仅什么都不用记住,甚至连操作都不需要一步一步来,节省了大量的调试时间。下图展示了如何使用Cyber??brain进行调试:如果想找出返回值错误的原因。通过查看图表,您已经对导致返回值的原因有一个大概的了解。接下来,将鼠标悬停在“return”节点上,所有相关值都会显示出来,形成一条从函数开始到结束的跟踪路径:移动鼠标就能发现问题,谁还需要编译器?目标检查如果您现在有一个很大的列表,但它不适合图表,您如何使用工具来检查它的值?devtools可用于检查值,如下所示。启动后Cyber??brain会自动打开devtools窗口。当你将鼠标悬停在一个变量上时,它的值将被记录在devtools控制台中。所以在这种情况下,虽然跟踪图中没有足够的空间来显示整个列表,但你仍然可以从devtools中查看它的值。几乎所有的Python调试器(PyCharm、VSCode等)都会拦截参数,无法显示大型列表中的每个元素。但我们相信“小事大成”,每一条信息都是有用的,不应被忽视。因此,除非您明确告知,否则Cyber??brain不会拦截参数。LoopsCyber??brain还有一个独特的功能,你可以在调试的时候设置循环计数器。由于实施相当复杂,因此存在一些已知错误,但随着更新,它应该会变得更好。目前,Cyber??brain在Github上标记了1.5Kstars,共计64个分支。(Github地址:https://github.com/laike9m/Cyber??brain)最后值得一提的是,创建者laike9m毕业于清华大学,是谷歌的软件工程师。他目前正在全职开发Cyber??brain工具。
