我有一个PowerBuilder项目,它调用我的.Net类库,并将其暴露给COM。我对PowerBuilder非常陌生,刚刚开始使用它。我想为我的COM调用创建一些简单的测试,我已经找了很长一段时间,找不到任何类似于VS诊断方法的东西。这个功能是否存在?多谢了!
yyyllmsg1#
锁定,本次有disputes about this answer’s content正在解析。它目前不接受新的交互。
您可以通过Windows Debugging API记录消息,然后使用合适的查看器可以看到您的消息。
sshcrbum2#
我假设您希望编写自定义数据,而不仅仅是执行的行(遗憾的是,PBDEBUG只能提供这些数据;我一直想要一个自定义的数据写入PBDEBUG跟踪,但我从来没有能够说服Sybase的任何人将其添加到产品中)。
PFC
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()所有的时间。)我甚至把代码,以便我可以打开调试服务与命令行选项(我不告诉用户)。这样,我就可以在最终用户的工作站上进行这种类型的故障排除(假设我已经预料到了需要写入的数据)。
其他
如果我被一个非PFC应用程序卡住了,我担心我通常太匆忙了(阅读:我太懒了)来适应PFC调试服务,所以我只创建了一个全局函数,对硬编码的文件名执行FileOpen、FileWrite和FileClose,并将消息作为参数写入。然后我用调用这个函数加载代码。从理论上讲,在部署时,您可以将此函数设置为空函数,但我通常会删除所有调用。
4ioopgfo3#
您可以使用“/pbdebug”运行时开关,它会创建一个日志文件。除此之外,你必须滚动你自己的日志,PB(IMO)是出了名的难以执行单元测试。
xjreopfe4#
你在为.NET目标编译吗?在这种情况下,你应该能够使用你的.NET函数:
#if defined PBDOTNET System.Diagnostics.Debug.WriteLine( .. ) #endif
4条答案
按热度按时间yyyllmsg1#
锁定,本次有disputes about this answer’s content正在解析。它目前不接受新的交互。
您可以通过Windows Debugging API记录消息,然后使用合适的查看器可以看到您的消息。
sshcrbum2#
我假设您希望编写自定义数据,而不仅仅是执行的行(遗憾的是,PBDEBUG只能提供这些数据;我一直想要一个自定义的数据写入PBDEBUG跟踪,但我从来没有能够说服Sybase的任何人将其添加到产品中)。
PFC
PFC提供了一个Debug服务来实现这一点,但是如果你还没有使用PFC构建你的应用,它可能需要一个适度的努力来适应你的基础设施。如果你有一个基于PFC的应用程序,你所要做的就是
在应用程序管理器的pfc_Open事件中(或其他适当的位置),然后开始使用
这样,您只需删除of_SetDebug()即可关闭消息传递,而无需删除所有消息的代码。(好的,理论上这会让你的应用程序慢一点,检查是否IsValid()所有的时间。)我甚至把代码,以便我可以打开调试服务与命令行选项(我不告诉用户)。这样,我就可以在最终用户的工作站上进行这种类型的故障排除(假设我已经预料到了需要写入的数据)。
其他
如果我被一个非PFC应用程序卡住了,我担心我通常太匆忙了(阅读:我太懒了)来适应PFC调试服务,所以我只创建了一个全局函数,对硬编码的文件名执行FileOpen、FileWrite和FileClose,并将消息作为参数写入。然后我用调用这个函数加载代码。从理论上讲,在部署时,您可以将此函数设置为空函数,但我通常会删除所有调用。
4ioopgfo3#
您可以使用“/pbdebug”运行时开关,它会创建一个日志文件。除此之外,你必须滚动你自己的日志,PB(IMO)是出了名的难以执行单元测试。
xjreopfe4#
你在为.NET目标编译吗?
在这种情况下,你应该能够使用你的.NET函数: