【问题标题】:How to view decompiled R code in order to debug it?如何查看反编译的 R 代码以进行调试?
【发布时间】:2025-11-24 08:05:01
【问题描述】:

我正在使用ASSIGN SESSION:DEBUG-ALERT = TRUE.,因此,在测试程序时,我收到一条错误消息,其中包含以下调用堆栈详细信息(仅第一行):

--> USER-INTERFACE-TRIGGER my_own_window.w at line 587  (\\<official_build_server_directory>\my_own_window.r)
    my_own_window.w at line 709  (\\<official_build_server>\<my_own_window.r)
    ...
    

如您所见,我的窗口在 587 和 709 行有问题,但是:
在编译窗口文件时,会发生一些与行号混淆的事情,并且提到的行号来自已编译的 *.r 文件,与原始 *.w 文件中的行号不同。
为了确定行号,我需要一个反编译器,或者至少一个 *.r-viewer(基于内部反编译器)。

【问题讨论】:

    标签: openedge progress-4gl decompiling


    【解决方案1】:

    这不是您需要研究的 r 代码。这是调试列表文件。如果你有源代码执行:

    COMPILE my_own_window.w DEBUG-LIST c:\temp\my-own_window.debuglist .
    

    该文件显示了实际的行号。

    【讨论】:

      【解决方案2】:

      供将来参考:到目前为止,Progress 还没有提供反编译器。在撰写本文时,任何可用的反编译器都是第 3 方,并且对于 Progress OpenEdge 许可证也可能不合法。

      【讨论】:

        【解决方案3】:

        您还可以单击该警报框中的“调试”按钮,这将调用调试器,该调试器将逐步执行“动态”调试列表。

        为了使调试列表能够运行,您需要在您的propath 中拥有源文件。如果您的代码执行后源文件发生了变化,调试器会检测并报错。

        您还需要通过启动proenv 然后prodebugenable -enable-all 来确保启用调试器

        【讨论】: