我有一个PowerBuilder项目,它调用暴露给COM的.Net类库。我是PowerBuilder的新手,刚开始接受它。我想为我的COM调用创建一些简单的测试,我已经找了很长时间,找不到任何类似VS Diagnostics方法的东西。
此功能是否存在?
非常感谢!
答案 0 :(得分:4)
您可以通过Windows调试API记录消息,然后使用合适的查看器显示消息。
答案 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