在运行时显示 loadlib

Posted

技术标签:

【中文标题】在运行时显示 loadlib【英文标题】:Display the loadlib at runtime 【发布时间】:2018-04-24 17:56:21 【问题描述】:

目前在我的商店中,我们有一个标准的 SYSOUT 标头,其中显示了一堆有用的信息,例如:

程序名称 环境 开始时间 程序编译时间

对我们来说非常有用的一件事是显示当前程序从哪个加载库运行。我能够使用 IBM 内部函数 WHEN-COMPILED 获得编译日期时间,但我找不到任何可以让我获得 loadlib 的东西。

解决这个问题的正确方法是什么?

【问题讨论】:

如果您只是显示分配给您工作的 STEPLIB 的数据集,这可能是一项简单得多的任务。这比尝试推断您的程序加载的实际库要容易得多。 【参考方案1】:

从我在 ibm-main listserv 上看到的情况来看,对于这个问题没有通用的解决方案可以在所有情况下都有效。话虽如此,您的具体案例可能有 Peter Relson 在https://groups.google.com/d/msg/bit.listserv.ibm-main/-kkUfvDpprk/L5PHW_HOyxMJ 建议的解决方案:

模仿系统搜索顺序并在每个数据集上为相关成员执行 BLDL。当您找到该成员时,您可能知道它是从哪个库加载的。我说“可能”是因为可能该成员已加载,然后有人将其从库中删除。然后可能会将其添加到不同的库中。

如果您关注讨论线程,您会看到一位成员成功创建了一个汇编程序模块来完成我认为您所问的事情。也许他们愿意分享他们的代码,或者已经在 CBTTAPE 网站上。

【讨论】:

该链接信息量很大。在我接受这个答案之前,我会再给它一点时间。感谢您的回复!【参考方案2】:

您也许可以进行控制台转储并查看当前打开的加载模块。一旦你有了它,你可以将日期时间戳与不同的负载库进行比较以找到负载库。

1. 在 SDSF 中, 控制台 DumpDUMP COMM=(循环转储)。这将返回 ID。

2.输入命令: R id,JOBNAME=(your_jobname),SDATA=(CSA,GRSQ,LPA,LSQA,NUC,PSA,RGN,SQA,SWA,TRT),END

3.将转储导入abend-aid

4.找到你感兴趣的模块

5.将日期时间与不同的负载库进行比较

【讨论】:

以上是关于在运行时显示 loadlib的主要内容,如果未能解决你的问题,请参考以下文章

当用户在运行时权限对话框上单击拒绝时显示 DialogFragment

在异步任务运行时显示警报框并在任务完成时删除?

如何在运行时显示/隐藏列?

运行给定程序时显示编译错误

NSIS 如何在卸载时检测软件是不是运行并提示用户

为啥运行“git branch -r”时显示“origin/HEAD”?