运行时跟踪






3.60/5 (5投票s)
2002年12月2日
3分钟阅读

58526

1517
显示来自不同机器上多个运行应用程序的运行时跟踪消息
目的
开发复杂的应用程序需要花费大量时间来解决错误。 即使您认为一切正常 - 并进入最终版本 - 该软件仍可能会抛出一些令人惊讶的错误,这些错误在调试时是不可见的。 我在这里介绍一个应用程序,旨在接收来自运行时抛出的TRACE
消息,以及发送此类消息的两种替代方法。
接收器
此目的在于显示从多个正在运行的应用程序接收到的跟踪消息。 它将与每个应用程序关联,它自己的跟踪子窗口,并以这样的string
识别它
machine [application description]
其中machine
是发送应用程序正在运行的计算机,而application description
是应用程序本身的简短描述。 您要做的就是启动此应用程序,并设置要从中侦听发送者的端口。 隐式值为 7777,不建议修改,除非它已被使用。
发送器
使用 COM
您可以通过版本无关的 ID Tracing.RuntimeTrace
来实例化它,或者直接从tracing.dll导入,该文件可以在系统目录中找到。 它取决于您使用的开发工具。 该接口有几个方法和一个属性
BOOL SetTarget (Name[, IP[, Port]] )
Name
- 用于标识当前应用程序的string
IP
- 运行接收器的机器的 IP。Default: "127.0.0.1"
Port
- 接收器正在侦听的端口。 必须与接收器正在侦听的值相同
尝试连接服务器并将名称分配给发送方应用程序。 如果成功,则返回TRUE
,否则返回FALSE
。
BOOL IsConnected ()
如果已连接,则返回TRUE
,否则返回FALSE
。
BOOL Add (Var)
Var
- 要添加到列表中的参数
将变量添加到要跟踪的列表。 调用顺序必须与传递给下一个Trace
调用的格式文本的顺序一致。 如果成功,则返回TRUE
,否则返回FALSE
。
VOID Drop()
删除实际参数列表的内容。
BOOL Trace(Format)
Format
- 接收器要显示的格式文本。 必须采用printf
(C 函数)样式
跟踪先前使用Add
创建的列表。 如果成功,则返回TRUE
,否则返回FALSE
。
VOID Trace10(Format[, v1[, v2[...[, v10]]...])
Format
- 接收器要显示的格式文本v1
-v10
- 最多 10 个要跟踪的参数
跟踪提供的变量。 必须采用printf
(C 函数)样式。
ErrorReason
包含最后一个错误原因的文本
使用 RTClass.h (C++/MFC) 或 RTClassC.h (C++/非 MFC)
包含一个类,该类具有与上述 COM 接口等效的成员。
协议
machine "application" text
其中machine
是发送机器的 IP,application
是为应用程序选择的名称,text
是发送者希望发送的文本。 注意使用"
作为语法元素。
更新时间
- 2003 年 3 月 31 日:添加了 Unicode 支持
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。