我有一个 PowerBuilder 项目,它调用我暴露给 COM 的 .Net 类库。我对 PowerBuilder 很陌生,刚刚开始学习它。我想为我的 COM 调用创建一些简单的测试,但我已经找了很长时间,找不到任何类似于 VS 诊断方法的东西。
这个功能存在吗?
非常感谢!
我有一个 PowerBuilder 项目,它调用我暴露给 COM 的 .Net 类库。我对 PowerBuilder 很陌生,刚刚开始学习它。我想为我的 COM 调用创建一些简单的测试,但我已经找了很长时间,找不到任何类似于 VS 诊断方法的东西。
这个功能存在吗?
非常感谢!
您可以通过 Windows 调试 API 记录消息,然后使用合适的查看器可以看到您的消息。
我假设您想编写自定义数据,而不仅仅是执行的行(遗憾的是,这是您从 PBDEBUG 获得的全部内容;我一直希望将自定义数据写入 PBDEBUG 跟踪,但我从未能够说服任何人在 Sybase 将其添加到产品中)。
全氟辛烷磺酸
PFC 提供了一个 Debug 服务来执行此操作,但如果您尚未使用 PFC 构建您的应用程序,则可能需要适度的努力以使其适应您的基础架构。如果你有一个基于 PFC 的应用程序,你所要做的就是
of_SetDebug (TRUE)
在应用程序管理器的 pfc_Open 事件中(或其他适当的地方),然后开始用
IF IsValid (gnv_App.inv_Debug) THEN gnv_App.inv_Debug.of_Message (...)
这样,您只需删除 of_SetDebug() 即可关闭消息传递,而无需删除所有消息的代码。(好吧,理论上这会稍微减慢你的应用程序,检查是否一直是 IsValid ()。)我什至输入了代码,以便我可以使用命令行选项打开调试服务(我没有t 告诉用户)。这样,我可以在最终用户的工作站上进行这种类型的故障排除(假设我已经预料到我需要编写的数据)。
其他
如果我坚持使用非 PFC 应用程序,恐怕我通常太匆忙(阅读:太懒)来适应 PFC 调试服务,所以我只创建一个执行 FileOpen、FileWrite 和 FileClose 的全局函数在硬编码的文件名上,写入作为参数传入的消息。然后我通过调用这个函数来加载我的代码。理论上,您可以在部署时将其设为空函数,但我通常会删除所有调用。
您可以使用“/pbdebug”运行时开关,它会创建一个日志文件。除了您必须滚动自己的日志记录之外,众所周知,PB (IMO) 难以执行单元测试。
您正在为 .NET 目标进行编译吗?
在这种情况下,您应该能够使用您的 .NET 函数:
#if defined PBDOTNET
System.Diagnostics.Debug.WriteLine( .. )
#endif