我想了解什么是可执行文件的rlimit和管道限制?我正在调试一个问题,其中动态生成的可执行文件在加载时崩溃,但是静态生成的可执行文件很好。当动态生成的可执行文件被加载时,
寄存器转储后,我看到以下打印
Process 2748(ls) has RLIMIT_CORE set to 1
Aborting Core
首先,请从对执行人员的角度解释rlimit是什么。也有叫管道极限的东西吗?我看到这个过程条目。
请为我指出一些资源,这些资源解释可执行文件的这些属性。
问题2:当加载可执行文件时,exec究竟会执行什么操作?链接器将加载我的可执行文件所需的共享库。为此,链接器(/ system / bin中的二进制文件)应首先执行。
因此,我知道链接器(system / bin / linker)和可执行文件(ls)均由exec加载。我的理解正确吗?这全是理论。如果某人(可能同时擅长于fs和proc管理)可以指出相关的消息来源,那将是很大的帮助。谢谢你。
本RLIMIT_CORE
是用来放在信息的量的限制是核心转储被允许生产,它被中止了。达到此限制后,将不再记录任何信息,并且消息Aborting Core
将记录到控制台。
在core的手册页中:
进程可以设置其软
RLIMIT_CORE
资源限制,以对接收到“核心转储”信号时将生成的核心转储文件的大小设置上限。
使用setrlimit()
配置RLIMIT_CORE
为较大的值,以获得完整的核心转储。
可执行文件/共享对象的最常见格式是ELF。在Linux上,这些共享库的动态加载和链接由ld.so
ld.so
加载到新创建的进程的地址空间中(exec
在这种情况下),并首先执行。这是可能的,因为.interp
在编译过程中其路径已嵌入到可执行二进制文件的部分中。
然后,动态链接器
*.so
文件)本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句