CityMaker Runtime诊断工具cmdiag是用来对Runtime(COM/COMServer/CLI)的信息获取和运行状态监视以及故障分析的重要工具,新版的cmdiag在原来的旧版基础上增加了一些比较实用的功能。新版的界面如下:
从上到下功能依次是:
1.机器码获取
2.当前正运行的组件信息(路径、组件的编译事件、以及组件的类型)
3.组件的接口调用记录工具
4.组件的内存状态以及数据申请记录工具
5.日志设置工具 和 授权检测工具
其中接口调用一栏中的按钮点开以后,会在右边展开的区域实时显示当前的组件正在被调用的接口(包括接口调用和事件调用)。
机器码:
机器码是根据本机的物理硬件特征生成的编码,客户使用此功能来申请软授权文件。
当前组件信息:
cmdiag刚启动的时候,当前运行的组件信息是空的。当本机有CityMaker Runtime 组件运行的时候,便会在此处显示组件的信息。信息包括以下几个方面:
1. 组件所在的路径
2. 组件的编译时间
3. 组件的类型,包括COM,进程外组件(Com Server),.Net组件(C++/CLI)
接口调用:
接口调用在旧版的基础上进行了完善,不仅可以记录每个接口的调用记录,而且可以记录事件触发的调用记录,通过这个事件的记录,可以分析出二次开发绑定了什么事件,通过事件的[STA]和[END]标记,又可以分析出在这个事件里调用了哪些接口。
CLI组件接口调用记录表:
COM
组件接口调用记录表:
COM SERVER接口调用记录表
:
从上面几个表中可以看出, Com Server的事件记录,包括了对事件参数的记录。
在接口调用界面中有2个选项:
1. 隐藏END,如果勾选此项,那么在记录中只会显示接口调用开始的记录,不会显示调用结束的记录
2. 记录MouseMove事件,由于鼠标移动事件太频繁,如果默认记录的话,会造成大量的冗余,所以添加了这个选项,如果二次开发中没有绑定MouseMove事件,就没有必要勾选此项
内存状态:
内存状态会实时显示当前运行的组件所使用的内存状况。
数据请求:
下面几个数字从左到右的含义依次是:
RenderIndex, Model, Image, Terrain, Imagery,Tile