Lua中如何实现类似gdb的断点调试--05优化断点信息数据结构?

本篇继续改进我们的Lua调试器,设法优化断点信息的数据结构,进一步提升性能。

在上一篇04优化钩子事件处理中,我们在钩子函数中引入了call和return事件的处理,对性能进行了优化。

细心的同学可能已经发现了,我们的hook函数中call事件和line都需要对整个断点表进行遍历,这其中其实是存在着一些冗余的。因为call事件只关心函数是否有断点,而line事件则只关心本函数内有哪些断点。所以我们可以想办法优化一下断点信息的数据结构,进一步提升性能。

源码已经上传Github,欢迎watch/star