Lua语言中如何排查并解决记一次出现的死循环问题?

更新于
2026-09-16 09:32:00
36阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计772个文字,预计阅读时间需要4分钟。

Lua语言中如何排查并解决记一次出现的死循环问题?

前言:如果在Lua语言中某处出现了死循环!你特别想知道这样的死循环到底在哪里!🔍🔍🔍

重现步骤:

1.打开技术支持界面

2.整个游戏就卡死了,不动了

3.开始排查

4.查看CPU占用情况

Lua语言中如何排查并解决记一次出现的死循环问题?

结果:

前言

如果在Lua语言中某一处死循环了!你特么的怎么去查出这特么的该死的循环到底在特么的哪里!!!

重现步骤

一打开技能界面,整个游戏就卡死不动了

开始排查

查看一下cpu占用率,unity占用60%+,应该是死循环

一开始采取冒烟式查错法,去一些可疑的地方一个个打断点(我们有lua调试工具可断点)。
游戏的大循环,事件派发基层接口,lua调用c#的基层接口等等,都加了很多断点

可喜的是~~ 完全没有进来!

要怎么才知道当前运行哪段代码呢?这个问题让我想起一个东西
debug.sethook

debug库提供了一种hook的方式,可以通过注册一个handler函数,在lua脚本运行到某个调用时,会触发这个handler,
获取到相应的执行信息,并且给你一个记录和数据维护的机会。

阅读全文

本文共计772个文字,预计阅读时间需要4分钟。

Lua语言中如何排查并解决记一次出现的死循环问题?

前言:如果在Lua语言中某处出现了死循环!你特别想知道这样的死循环到底在哪里!🔍🔍🔍

重现步骤:

1.打开技术支持界面

2.整个游戏就卡死了,不动了

3.开始排查

4.查看CPU占用情况

Lua语言中如何排查并解决记一次出现的死循环问题?

结果:

前言

如果在Lua语言中某一处死循环了!你特么的怎么去查出这特么的该死的循环到底在特么的哪里!!!

重现步骤

一打开技能界面,整个游戏就卡死不动了

开始排查

查看一下cpu占用率,unity占用60%+,应该是死循环

一开始采取冒烟式查错法,去一些可疑的地方一个个打断点(我们有lua调试工具可断点)。
游戏的大循环,事件派发基层接口,lua调用c#的基层接口等等,都加了很多断点

可喜的是~~ 完全没有进来!

要怎么才知道当前运行哪段代码呢?这个问题让我想起一个东西
debug.sethook

debug库提供了一种hook的方式,可以通过注册一个handler函数,在lua脚本运行到某个调用时,会触发这个handler,
获取到相应的执行信息,并且给你一个记录和数据维护的机会。

阅读全文