OpenEdge 10.2A-没有其他信息的错误屏幕,如何解决?

时间:2019-06-27 09:12:30

标签: runtime-error openedge

多年来,我们一直在使用Progress OpenEdge 10.2A,在过去的四个月中,我们开始收到来自客户的未知错误消息。

我们使用以下行来调用.w文件:

RUN VALUE(myPath + "myProgram.r") PERSISTENT SET myPrograms[i].

通常,相同的程序可以正常工作,但是在极少数情况下,程序窗口似乎没有响应,但是实际上,当我们查看Windows任务栏时,任务栏中还有一个条目是prowin32.exe。标题为“错误”的窗口。但是,选择该选项后,似乎没有附加可见窗口。

当我们使用“关闭窗口”选项从任务栏中关闭它时,它再次出现在任务栏中6至7次,然后整个prowin32会话重新启动。

我们无法识别错误,因为它没有显示任何消息或错误号。

如果您遇到这样的问题,我想知道您是如何解决的。

如果没有,将您引向我解决问题的方法,将不胜感激。

Taskbar

Task Manager

修改1: -errorstack -debugalert -clientlog myLogFile.log 添加到我的启动参数后,将生成myLogFile.log。发生错误时,写以下部分。

**Unable to realise TEXT myText. (4025)
** ABL Debug-Alert Stack Trace **
--> enable_UI c:\myFolder\myFile1.r (c:\myFolder\myFile1.r) at line 21014
    c:\myFolder\myFile1.r (c:\myFolder\myFile1.r) at line 14858
    USER-INTERFACE-TRIGGER c:\myFolder\myFile2.r (c:\myFolder\myFile2.r) at line 2905

1 个答案:

答案 0 :(得分:1)

0)OpenEdge 10.2a是古老,过时且不受支持的。您应该早在10年前就已迁移到现代版本。至少您应该在10.2b08上。您还拒绝更新Windows吗? OpenEdge 12是当前版本。 Windows或环境其他方面的意外更改可能导致您的问题,甚至可能。进展永远不会更新10.2a来适应这种情况。您只是通过过时的发布来延长痛苦。

1)4个月前您的代码或环境发生了什么变化?

2)您可以通过运行proGetStack获得额外的prowin32会话的堆栈跟踪。那应该有助于解释启动了什么,错误是什么,以及为什么您杀死它后又出现6-7。以“管理员”身份打开“ proenv”窗口并运行proGetStack(您可以从taskmgr获取进程ID)。

proenv>  proGetStack 123456

堆栈跟踪将出现在目标进程的工作目录中。通常,该目录与proenv所在的目录相同,但是应用程序可能会对其进行更改,因此您可能必须寻找它。 (管理员proenv窗口有时无法在%wrkdir%中启动,您可能还需要cd / d%wrkdir%)

3)如果尚不存在,则应将-debugalert和-errorstack添加到客户端启动参数。 -clientlog logfileName.log也可能会有所帮助。

4)检查您的代码库中是否存在调用prowin32子进程的位。有很多方法可以执行此操作,例如OS-COMMAND,INPUT THROUGH或通过Windows DLL调用。通过搜索该字符串可以找到直接调用prowin32的字符串,但也可能是通过BAT文件或其他技术进行的间接调用。

5)如果您有一种可重复的方式来产生错误,那么您也可以在启动时或在代码中找到正确的点时添加4GLTrace日志条目类型:https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dpspr/log-entry-types-(-logentrytypes).html