从z / OS上的C语言可执行文件中删除符号信息

莫拉格·休森(Morag Hughson)

构建了我的应用程序(最初使用)后debug,现在开始准备生产。我从更改了我的编译选项

-c -W"c,debug,LP64,sscomm,dll"

-c -s -W"c,LP64,sscomm,dll"

这会将生成的可执行文件的大小减小到调试版本的60%。

我从更改了链接选项

-W"l,LP64,DYNAM=DLL"

-s -W"l,LP64,DYNAM=DLL"

这进一步将生成的可执行文件的大小减小到原始调试版本的20%。

因此,它似乎肯定在做某事但是,当我查看可执行文件时,仍然可以在可执行文件中看到所有函数名,并且当我强制放弃时,CEEDUMP生成的文件仍会显示该文件中的所有函数名。我希望-s删除所有符号信息。

所以我的问题是“如何删除所有符号信息?”

此外,一旦与-s链接,就无法再将模块从生成模块的USS文件复制到MVS数据集。我使用以下命令:

cp -X prog "//'ME.USER.LOAD(PROG)'"

失败的原因:-

 IEW2523E 3702 MEMBER *NULL* IDENTIFIED BY DDNAME /0000002 IS NOT AN EDITABLE
          MODULE AND CANNOT BE INCLUDED.
 IEW2510W 3704 ENTRY OFFSET  0 IN MODULE *NULL* IDENTIFIED BY DDNAME /0000002
          DOES NOT EXIST IN A VALID SECTION.
cp: FSUMF140 IEWBIND function "INCLUDE" failed with return code 8 and reason code 83000505

该错误消息似乎表明我需要EDIT链接选项,但是如果在其中添加链接选项,则链接似乎会取消使用-s链接的步骤,因为该链接的大小会返回到调试版本大小的60%。

所以我的第二个问题是:“如何将文件复制到MVS数据集并删除符号信息?”

也许我可以采取后续步骤来再次驱动活页夹,以便在复制后从USS文件和MVS数据集中删除符号信息?

米洛斯·拉洛维奇(Milos Lalovic)

您可以COMPRESS在某种程度上使用编译器选项COMPACTCOMPRESS选项将禁止在控制块中发出函数名,而该COMPACT选项将影响编译器的优化选择,以支持较小的对象大小。

即使您正在USS中编译和链接可执行文件,也无需在USS中生成可执行文件,然后将其复制到数据集。您可以使用-o "//'ME.USER.LOAD(PROG)'"语法将可执行文件直接放入数据集中只要确保您的输出数据集是即可PDSE

由于您是在USS中进行编译和链接的,因此您应该将该xlc实用程序与-q语法一起用于编译器选项,因为该语法避免了在Shell中使用特殊含义的括号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将共享库中的符号解析为可执行文件

来自分类Dev

用C中的Makefile获取可执行文件

来自分类Dev

静态库中的类别方法符号在主可执行文件中不可见

来自分类Dev

在C#可执行文件中构建.sln

来自分类Dev

重新启动由CTRL + Z停止并包含由os.system启动的Fortran可执行文件的python脚本

来自分类Dev

LuaJIT FFI无法从可执行文件加载符号

来自分类Dev

去编译:从可执行文件中删除个人信息

来自分类Dev

在我的独立可执行文件中使用R的C代码:“未定义符号”

来自分类Dev

“ bash可执行文件”和“ bash -c可执行文件”之间的区别

来自分类Dev

在Linux中的可执行文件上

来自分类Dev

将共享库中的符号解析为可执行文件

来自分类Dev

将字节写入C中的可执行文件

来自分类Dev

可执行符号链接到Linux中的非可执行文件的可能性?

来自分类Dev

获取有关Linux系统上Windows可执行文件的信息

来自分类Dev

ELF可执行文件:导入符号所需的版本信息

来自分类Dev

最终可执行文件中对符号表的要求?

来自分类Dev

在Jmeter中运行C可执行文件(测试)

来自分类Dev

从Makefile中的c可执行文件中删除硬编码的rpath

来自分类Dev

如何从Visual Studio C#可执行文件中删除修订号?

来自分类Dev

bash脚本可以从作为参数的C可执行文件访问信息吗?

来自分类Dev

cat可执行文件中的开始符号在哪里?

来自分类Dev

在Ubuntu上编译C文件并在Windows上使用可执行文件

来自分类Dev

C ++可执行文件崩溃

来自分类Dev

符号链接找不到所需的可执行文件

来自分类Dev

在可执行文件中“隐藏”文件 (C++)

来自分类Dev

制作可执行文件的符号链接

来自分类Dev

在 cmake 中,在分布式可执行文件中/包含任意构建时间信息

来自分类Dev

可执行文件上的 Python 文件提取器

来自分类Dev

在 z/os 上实现 ssl

Related 相关文章

  1. 1

    将共享库中的符号解析为可执行文件

  2. 2

    用C中的Makefile获取可执行文件

  3. 3

    静态库中的类别方法符号在主可执行文件中不可见

  4. 4

    在C#可执行文件中构建.sln

  5. 5

    重新启动由CTRL + Z停止并包含由os.system启动的Fortran可执行文件的python脚本

  6. 6

    LuaJIT FFI无法从可执行文件加载符号

  7. 7

    去编译:从可执行文件中删除个人信息

  8. 8

    在我的独立可执行文件中使用R的C代码:“未定义符号”

  9. 9

    “ bash可执行文件”和“ bash -c可执行文件”之间的区别

  10. 10

    在Linux中的可执行文件上

  11. 11

    将共享库中的符号解析为可执行文件

  12. 12

    将字节写入C中的可执行文件

  13. 13

    可执行符号链接到Linux中的非可执行文件的可能性?

  14. 14

    获取有关Linux系统上Windows可执行文件的信息

  15. 15

    ELF可执行文件:导入符号所需的版本信息

  16. 16

    最终可执行文件中对符号表的要求?

  17. 17

    在Jmeter中运行C可执行文件(测试)

  18. 18

    从Makefile中的c可执行文件中删除硬编码的rpath

  19. 19

    如何从Visual Studio C#可执行文件中删除修订号?

  20. 20

    bash脚本可以从作为参数的C可执行文件访问信息吗?

  21. 21

    cat可执行文件中的开始符号在哪里?

  22. 22

    在Ubuntu上编译C文件并在Windows上使用可执行文件

  23. 23

    C ++可执行文件崩溃

  24. 24

    符号链接找不到所需的可执行文件

  25. 25

    在可执行文件中“隐藏”文件 (C++)

  26. 26

    制作可执行文件的符号链接

  27. 27

    在 cmake 中,在分布式可执行文件中/包含任意构建时间信息

  28. 28

    可执行文件上的 Python 文件提取器

  29. 29

    在 z/os 上实现 ssl

热门标签

归档