目录

调试

调试,是所有开发都必要的步骤。在CBE引擎开发中,调试也是至关重要的。我们为了方便开发者,制作了一些工具以提供帮助。

调试技巧:

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业务通路是非常合适的方式。

Copyright © 2018 Yolo Technologies. Publication: 2.0-025. Built: 2018-12-07.