位置无关代码与可重入代码有什么关系吗?

发布于 2022-09-12 02:27:42 字数 156 浏览 13 评论 7

问题1:如题;
问题2:在链接时,只有表示global的符号需要地址解析吗?
谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

静谧 2022-09-20 09:57:44

你这“位置无关代码”,就是浮动码吧?
一段代码,它内部的所有跳转指令全部是相对转移指令,这样它挪一个位置,执行结果不变。
它与可重入码之间,好像没有关系。

自在安然 2022-09-19 20:59:24

回复 6# cjaizss

    呵呵,总有种感觉他们之间有联系,现在我知道了。那为什么在处理并行时,有时用volatile,有时用锁?

寄人书 2022-09-19 20:17:24

位置无关代码和可重入代码能有啥关系?完全是两回事嘛

孤千羽 2022-09-19 20:14:51

回复 4# prolj

    ╮(╯▽╰)╭,偶是一个小小菜鸟啊,帮我解答解答呗      

蓝眼泪 2022-09-18 21:38:04

lz虽然帅的一塌糊涂,基础只是也是一塌糊涂啊。

柏拉图鍀咏恒 2022-09-18 03:44:51

回复 2# qtdszws

    1.为什么在处理并行时,有时用volatile,有时用锁?
   2.我不知道为什么你那又这么多UND的标识,那一列应该表示所在的section的序列号。

风月客 2022-09-12 03:03:52

>> 位置无关代码与可重入代码有什么关系吗?

没有关系,位置无关代码是指该代码在任何地址处都能执行,可重入代码指该代码可以并行执行而不会出问题(没有引用全局变量或引用了且用锁做了保护)

>>在链接时,只有表示global的符号需要地址解析吗?
应该是UND的吧

  1. [root@mail ~/binutils-2.18/gas]# readelf -s a.out|grep UND
  2.      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
  3.      1: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
  4.      2: 00000000   251 FUNC    GLOBAL DEFAULT  UND __libc_start_main@GLIBC_2.0 (2)
  5.      4: 00000000    57 FUNC    GLOBAL DEFAULT  UND printf@GLIBC_2.0 (2)
  6.      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
  7.     91: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
  8.     92: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _Jv_RegisterClasses
  9.     95: 00000000   251 FUNC    GLOBAL DEFAULT  UND __libc_start_main@@GLIBC_
  10.    100: 00000000    57 FUNC    GLOBAL DEFAULT  UND printf@@GLIBC_2.0

复制代码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文