⚒️ 调试
大约 2 分钟
调试,是所有开发都必要的步骤。在KBE引擎开发中,调试也是至关重要的。我们为了方便开发者,制作了一些工具以提供帮助。
调试技巧:
1.允许系统产生core文件(仅Linux):
在~/.bashrc中添加如下命令:
ulimit -c unlimited
需要root权限执行:
[root@gameserver ~]# echo '%e.core.%p' > /proc/sys/kernel/core_pattern
2.断点调试:
仅引擎层c++代码可以使用断点调试,断点调试请先关闭服务端心跳机制kbengine.xml->channelCommon->timeout
。
由于是分布式服务程序没有增加断点的功能,脚本层只能查看输出日志,或者使用Python命令行来调试。
3.监视器:
引擎允许使用工具监视当前进程上默认提供的变量(例如:总发包数,当前在线的玩家数),同时用户也可以在脚本中添加需要监视的变量。
添加一个监视变量:
可以在脚本层,通过API-KBEngine.addWatcher来增加一个监视变量。(详情可查看API手册)
def countPlayers():
i = 0
for e in KBEngine.entities.values():
if e.__class__.__name__ == "Avatar":
i += 1
return i
...
...
KBEngine.addWatcher("scripts/countPlayers", "UINT32", countPlayers)
本章节内容介绍:
其中包括:
- 运行时的日志查看器:方便对日志进行监控,出现问题时进行查看和分析。
- 在线调试(GUIConsole):使用GUIConsole的工具进行在线调试,提供了方便的GUI以及强大功能。注:一般在开发期使用。
- 在线调试(WebConsole):使用WebConsole工具,在web页面上进行调试。注:一般在运维期使用。
- PyCluster集群控制:该工具是一个集群控制工具,提供了查询服务端信息、启动与关闭服务端、控制台等功能。
- 使用bots机器人调试:bots可以模拟客户端的连接、通讯、操作等,是一种对服务端进行模拟测试的轻量级客户端程序,通过它进行debug业务通路是非常合适的方式。