linker - Exec(Linux) 它在内部的功能 Linux可以执行属性( rlimit )?

  显示原文与译文双语对照的内容

我想了解可执行文件的rlimit和管道限制? 我正在调试动态生成的可执行文件在加载时崩溃但静态生成的可执行文件很好的问题。 加载动态生成的可执行文件时,

我在 register dump之后看到下面的指纹


Process 2748(ls) has RLIMIT_CORE set to 1
Aborting Core

首先,请你解释一下使用到exec的视角是什么。 还有一些叫做管道极限的东西? 我看到这个过程条目。

请指出一些解释可执行文件属性的资源。

问题 2: 执行执行时的,具体执行的是什么? 链接器将加载我的可执行文件所需的共享库。 所以为了实现这一点,链接器(/system/bin) 内的一个二进制文件应该首先执行。

因此我理解 linker(system/bin/linker) 和 executable(ls) 都是由exec加载的。 我的理解正确这就是理论。 如果有人在fs和proc管理上很好,可以指向相关的源代码,这将很有帮助。 谢谢你。

时间:

,用于在被中止之前对,允许生成的信息量进行限制。 点击这里限制后,不会记录更多信息,并且将消息 Aborting Core 记录到控制台。

的手册页:

如果一个进程接收到"核心转储"信号的话,它可以设置它的软资源限制,以对核心转储文件的大小进行上限。

使用 setrlimit()RLIMIT_CORE 配置为更大的值以获得完整的coredumps 。


可执行文件/共享对象最常见的格式为 ELF 。 Linux上,这些共享对象的动态加载和链接是通过 ld.so 实现的。

ld.so 在新创建的进程( 在这里情况下,以英镑为单位的)的地址空间中加载,并首先执行。 在编译过程中,它的路径被嵌入可执行二进制文件的.interp 部分,这是可能的。

动态链接器

  • 加载初始可以执行映像
  • 加载依赖共享对象( *.so 文件)
  • 跳转到可执行文件的入口点

参考:基于elf的动态链接器,如系统

...