PowerBuilder相当于Debug.WriteLine?

时间:2009-07-09 13:26:30

标签: .net com debugging powerbuilder diagnostics

我有一个PowerBuilder项目,它调用暴露给COM的.Net类库。我是PowerBuilder的新手,刚开始接受它。我想为我的COM调用创建一些简单的测试,我已经找了很长时间,找不到任何类似VS Diagnostics方法的东西。

此功能是否存在?

非常感谢!

4 个答案:

答案 0 :(得分:4)

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

请参阅Use Windows Debugging API from Powerbuilder

答案 1 :(得分:3)

我假设您要编写自定义数据,而不仅仅是执行的行(很遗憾,您从PBDEBUG获得的所有内容;我一直希望将自定义数据写入PBDEBUG跟踪,但我从未能够说服Sybase的任何人将此添加到产品中)。

<强> PFC

PFC提供了一个可以执行此操作的调试服务,但如果您尚未使用PFC构建应用程序,则可能需要适度的努力才能使其适应您的基础架构。如果你有一个基于PFC的应用程序,你所要做的就是

of_SetDebug (TRUE)

在应用程序管理器(或其他适当的地方)的pfc_Open事件中,然后开始使用

编写代码
IF IsValid (gnv_App.inv_Debug) THEN gnv_App.inv_Debug.of_Message (...)

这样,您只需删除of_SetDebug()即可关闭消息传递,而无需删除所有消息的代码。 (好吧,理论上这会慢慢减慢你的应用程序,检查是否一直在查看IsValid()。)我甚至放入代码以便我可以使用命令行选项打开调试服务(我不知道)告诉用户()。这样,我可以在最终用户的工作站进行这种故障排除(假设我已经预料到我需要写的数据)。

其他

如果我坚持使用非PFC应用程序,我担心我通常太匆忙(读:太懒)来调整PFC调试服务,所以我只创建一个执行FileOpen的全局函数, FileWrite和FileClose在硬编码的文件名上,写入作为参数传入的消息。然后我通过调用此函数加载我的代码。从理论上讲,你可以在部署时将其设为空函数,但我通常会删除所有调用。

答案 2 :(得分:2)

您可以使用“/ pbdebug”运行时开关来创建日志文件。除此之外,您必须滚动自己的日志记录,PB(IMO)是非常难以执行单元测试。

答案 3 :(得分:0)

你在为.NET目标编译吗?

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

#if defined PBDOTNET
   System.Diagnostics.Debug.WriteLine( .. )
#endif