如何使用 OpenEdge 调试器 (OpenEdge Debugger 11.6)

问题描述

我正在使用 OpenEdge Progress-4GL AppBuilder 和过程编辑器,现在我想开始使用 OpenEdge Debugger 版本 11.6。

正如在互联网上的很多地方发现的那样,我已采取以下措施来调试我的 Progress 应用程序:

使用 Proenv,我启动了以下命令:

prodebugenable -enable-all

我收到以下回复

OpenEdge Release 11.6 as of Fri Oct 16 19:01:51 EDT 2015

==============================================================================
        PROGRESS Debug Enabler
==============================================================================

Debugging is enabled for the Progress 4GL installed in
C:\PROGRE~1\OpenEdge.

关于环境变量的一些信息供您参考:

proenv>set DLC
DLC=C:\PROGRE~1\OpenEdge

proenv>set WRK
WRKDIR=C:\OPENED~1\WRK

proenv>set ENABLE_OPENEDGE_DEBUGGER
Environment variable ENABLE_OPENEDGE_DEBUGGER not defined

就我的应用而言,该应用是基于快捷方式的,如下所示:

C:\Progressx86\OpenEdge\bin\prowin32.exe
  -basekey "INI"
    -ininame c:\progress\our_application\progress.ini
  -pf c:\progress\our_application\misc\run_our_application.pf
  -p our_application.r
  -rr

文件“run_our_application.pf”包含一个条目列表,如下所示:

-db   our_DB
-H  DC1
-N  tcp
-S  6543

对于提到的快捷方式,我添加-debugReady 5001 以启用基于 TCP 端口号 5001 的调试。当我启动应用程序时,我收到一条关于此的警告消息,netstat -aon 给出我以下条目:

TCP    0.0.0.0:5001           0.0.0.0:0              LISTENING       11344

其中 11344 被确认为 prowin32 应用程序。

在 OpenEdge 调试器中,我在菜单项“编辑”、“首选项”、“可附加”中有以下条目:

C:\progress\our_application
Z:\Progress\our_application\PRG
C:\Progressx86\OpenEdge

供您参考:Z:-drive 是外部服务器驱动器,Z:\Progress\our_application\PRG 是将文件*.w*.p)编译为 *.r 文件的目录,可以在那里找到文件 our_application.r

然而,当我打开一个 *.w 文件并转到菜单“调试”时,“附加到进程”菜单项保持禁用状态。

我该怎么做才能调试我的应用程序/*.w 文件
提前致谢

解决方法

有多种调试方式。开始简单。您应该能够使用以下任何一项:

  1. 来自过程编辑器

不要选择[编译/运行],而是选择[编译/调试]。 AVM 将开始执行当前文件,调试器将在第一行暂停执行。

  1. 来自任何警报框

-debugalert 添加到您的启动参数,每个警报框都会显示一个额外的“帮助”按钮。单击它会显示堆栈跟踪和“调试”按钮。点击它会启动调试器,在警告框那一行暂停执行,这可以是你自己的警告框或错误。

  1. 独立调试器

启动调试器应用程序(Windows 快捷方式启动 proDebugger.bat)并选择 [Debug / Attach To Process...],然后您可以输入 PID 或选择本地运行会话 (AVM)。

  1. 远程附加调试器

这似乎是您要设置的 - 这允许您将独立调试器(请参阅选项 3)附加到在另一台机器上运行的进程,这在您拥有 AppServer 或 WebSpeed 代理时非常有用想调试。

  1. PDSOE 调试器

与您无关,因为您没有使用 Progress Developer Studio for OpenEdge,只是为了完整性而提及它。这允许通过双击左边距并逐步浏览源代码而不是调试列表来在源代码中添加断点。