debugging PowerBuilder等效于Debug.WriteLine?

oymdgrw7  于 2023-05-07  发布在  其他
关注(0)|答案(4)|浏览(119)

我有一个PowerBuilder项目,它调用我的.Net类库,并将其暴露给COM。我对PowerBuilder非常陌生,刚刚开始使用它。我想为我的COM调用创建一些简单的测试,我已经找了很长一段时间,找不到任何类似于VS诊断方法的东西。
这个功能是否存在?
多谢了!

yyyllmsg

yyyllmsg1#

锁定,本次有disputes about this answer’s content正在解析。它目前不接受新的交互。

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

sshcrbum

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,并将消息作为参数写入。然后我用调用这个函数加载代码。从理论上讲,在部署时,您可以将此函数设置为空函数,但我通常会删除所有调用。

4ioopgfo

4ioopgfo3#

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

xjreopfe

xjreopfe4#

你在为.NET目标编译吗?
在这种情况下,你应该能够使用你的.NET函数:

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

相关问题