65.9K
CodeProject 正在变化。 阅读更多。
Home

运行时跟踪

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.60/5 (5投票s)

2002年12月2日

3分钟阅读

viewsIcon

58526

downloadIcon

1517

显示来自不同机器上多个运行应用程序的运行时跟踪消息

Sample Image

目的

开发复杂的应用程序需要花费大量时间来解决错误。 即使您认为一切正常 - 并进入最终版本 - 该软件仍可能会抛出一些令人惊讶的错误,这些错误在调试时是不可见的。 我在这里介绍一个应用程序,旨在接收来自运行时抛出的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 支持

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.