1

我有一个 PowerBuilder 项目,它调用我暴露给 COM 的 .Net 类库。我对 PowerBuilder 很陌生,刚刚开始学习它。我想为我的 COM 调用创建一些简单的测试,但我已经找了很长时间,找不到任何类似于 VS 诊断方法的东西。

这个功能存在吗?

非常感谢!

4

4 回答 4

4

您可以通过 Windows 调试 API 记录消息,然后使用合适的查看器可以看到您的消息。

请参阅使用 Powerbuilder 中的 Windows 调试 API

于 2009-07-09T16:49:50.670 回答
3

我假设您想编写自定义数据,而不仅仅是执行的行(遗憾的是,这是您从 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 的全局函数在硬编码的文件名上,写入作为参数传入的消息。然后我通过调用这个函数来加载我的代码。理论上,您可以在部署时将其设为空函数,但我通常会删除所有调用。

于 2009-07-11T01:13:44.517 回答
2

您可以使用“/pbdebug”运行时开关,它会创建一个日志文件。除了您必须滚动自己的日志记录之外,众所周知,PB (IMO) 难以执行单元测试。

于 2009-07-09T13:40:59.957 回答
0

您正在为 .NET 目标进行编译吗?

在这种情况下,您应该能够使用您的 .NET 函数:

#if defined PBDOTNET
   System.Diagnostics.Debug.WriteLine( .. )
#endif
于 2009-07-14T08:07:46.097 回答