ibm-midrange - IBM i : Binary diff between two *PGM objects

标签 ibm-midrange

操作系统:IBM i (AS/400)

我想检查两个 ILE *PGM(或 *SRVPGM)对象的可执行代码是否相同。无法使用包含的源更改日期,因为可以更改时间戳但代码是相同的。这是从 git 存储库下载源代码的情况,因此可以更改源代码更改日期。

例子: 您有一个包含所有已编译程序对象的库 A。然后你会从git下载完整的源代码到AS/400,编译成另一个库B。 现在你想检查库 A 和库 B 之间哪些程序对象确实发生了变化。只有发生变化的程序对象应该被保存并传输到目标系统。

将要比较的对象都是在同一系统和同一目标版本上编译的。

我没有找到比较二进制代码的 API。我可以使用 MI 获取此信息吗?

有人遇到同样的问题吗?

最好的问候, 马蒂亚斯

最佳答案

如果 *PGM 碰巧是用 DBGVIEW(*LIST) 或 DBGVIEW(*ALL) 编译的

您应该能够使用调试 API 从对象中提取编译列表。

否则,Dump Object命令可用于生成对象内容的假脱机文件。然后您可以比较假脱机文件。显然,它们不会是完美的匹配,例如库名称和创建日期会有所不同。我还怀疑如果编译对象是在不同级别的操作系统(版本甚至 PTF)上编译的,那么编译对象会有差异。

关于ibm-midrange - IBM i : Binary diff between two *PGM objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65842230/

相关文章:

java - 执行 JDBC as400 组查询给出错误 : A character, token ,或子句无效或丢失

java - 从 Java 访问 iSeries 上的 RPG

email - SNDSMTPEMM 注意限制为 400 个字符

java - JTOpen 用户空间读取

java - 使用 FTPS 将文件从 AS400 调度到大型机

java - 过期密码修改失败

sql - 尝试使用 CASE 语句从分组文件 SQL AS/400 更新文件

java - AS400 计算机上的 CL 程序调用 RUNJVA 时 JVM 崩溃

java - 连接到 as400 数据库的 Android 应用程序

ruby - 是否可以通过 Web 应用程序的 Java 对话框提示用户输入密码?