Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
说到Lua代码调试,最常用的方法应该就是加一堆print进行打印。print大法虽好,但其缺点也是显而易见的。比如效率低下,需要修改原有函数内部代码,在每个需要的地方添加print语句,运行一次只能获取一次信息,下次换个地方又得重新添加print语句。而且有时候,事先并不知道该去哪打印、或者打印什么内容,需要通过运行中获取的信息才能确定。
当print大法无法满足我们的需求时,就需要类似断点调试这样更高级的调试功能。本文将从零开始编写一个Lua调试器,实现类似gdb的断点调试功能。
本文代码已开源至Github,欢迎watch/star😘。
本博客已迁移至CatBro’s Blog,那里是我自己搭建的个人博客,欢迎关注。
定义模块及接口
首先,我们来定义模块及接口,创建一个名为luadebug.lua
的模块,该模块是基于标准库中的debug库。为了实现最基本的断点调试功能,我们的模块提供了两个接口setbreakpoint
和removebreakpoint
,分别用于设置断点和删除断点。断点信息通过一个函数和一个行号指定,返回断点的id。后续可以通过这个id来删除相应断点。