如何使用 OpenEdge 调试器 (OpenEdge Debugger 11.6)
How to use the OpenEdge debugger (OpenEdge Debugger 11.6)
我正在使用 OpenEdge Progress-4GL AppBuilder 和过程编辑器,现在我想开始使用 OpenEdge 调试器 11.6 版。
正如在 Internet 上的很多地方发现的那样,我采取了以下操作来启用我的 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
)编译成 [=23= 的目录] 文件,可以在那里找到文件 our_application.r
。
然而,当我打开一个 *.w
文件并转到“调试”菜单时,“附加到进程”菜单项保持禁用状态。
如何调试我的应用程序/*.w
文件?
有多种调试方法。从简单开始。您应该能够使用以下任何一项:
- 来自程序编辑器
而不是 select[编译/运行]、select[编译/调试]。 AVM会开始执行当前文件,调试器会在第一行暂停执行。
- 来自任何警告框
将 -debugalert
添加到您的启动参数,每个警告框都会显示一个额外的 'Help' 按钮。单击它将显示堆栈跟踪和一个 'Debug' 按钮。单击它将启动调试器,执行在警告框行暂停,这可以是您自己的警告框或错误。
- 独立调试器
启动调试器应用程序(Windows 快捷方式启动 proDebugger.bat)和 select [调试/附加到进程...] 然后您可以输入 PID 或 select 本地 运行 会话 (AVM)。
- 可远程连接的调试器
这似乎是您要尝试设置的 - 这允许您将独立调试器(参见选项 3)附加到另一台机器上的进程 运行,当您有一个您要调试的 AppServer 或 WebSpeed 代理。
- PDSOE 调试器
与您无关,因为您没有使用 Progress Developer Studio for OpenEdge,只是为了完整性而提及它。这允许通过双击左边距并单步执行源代码而不是单步执行调试列表来在源代码中添加断点。
我正在使用 OpenEdge Progress-4GL AppBuilder 和过程编辑器,现在我想开始使用 OpenEdge 调试器 11.6 版。
正如在 Internet 上的很多地方发现的那样,我采取了以下操作来启用我的 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
)编译成 [=23= 的目录] 文件,可以在那里找到文件 our_application.r
。
然而,当我打开一个 *.w
文件并转到“调试”菜单时,“附加到进程”菜单项保持禁用状态。
如何调试我的应用程序/*.w
文件?
有多种调试方法。从简单开始。您应该能够使用以下任何一项:
- 来自程序编辑器
而不是 select[编译/运行]、select[编译/调试]。 AVM会开始执行当前文件,调试器会在第一行暂停执行。
- 来自任何警告框
将 -debugalert
添加到您的启动参数,每个警告框都会显示一个额外的 'Help' 按钮。单击它将显示堆栈跟踪和一个 'Debug' 按钮。单击它将启动调试器,执行在警告框行暂停,这可以是您自己的警告框或错误。
- 独立调试器
启动调试器应用程序(Windows 快捷方式启动 proDebugger.bat)和 select [调试/附加到进程...] 然后您可以输入 PID 或 select 本地 运行 会话 (AVM)。
- 可远程连接的调试器
这似乎是您要尝试设置的 - 这允许您将独立调试器(参见选项 3)附加到另一台机器上的进程 运行,当您有一个您要调试的 AppServer 或 WebSpeed 代理。
- PDSOE 调试器
与您无关,因为您没有使用 Progress Developer Studio for OpenEdge,只是为了完整性而提及它。这允许通过双击左边距并单步执行源代码而不是单步执行调试列表来在源代码中添加断点。