调用exec后链接器是否保留?

时间:2017-08-18 19:26:49

标签: c linux linux-kernel android-source

我正在尝试观看链接器加载库并在Android上的zygote中搜索符号。

Zygote由init(或CLI上的启动/停止zygote命令)启动。在init。*。rc文件中,我将其修改为具有LD_DEBUG = 2的环境变量(通过init.zygote [32 | 64] .rc文件中的setenv LD_DEBUG 2)。在链接器代码中,这应该将调试信息打印到logcat,如果从命令行调用程序,它会执行该操作,即:“LD_DEBUG = 2 ./myprogram”。

但是,这对zygote不起作用。我看了/ proc / [zygote的pid] / environ,LD_DEBUG = 2肯定在那里。

服务的链接器代码(以及其他内容)设置环境数组,调用fork(),执行更多工作,然后使用它创建的数组调用exec()。

所以,我想知道,有没有办法在这个fork-exec中保留链接器?我认为这是不可能的,因为我认为一个exec完全抹去了一个进程的内存空间。

我可以看到如果它被保留,它将不再被调用,因为链接器已经被加载,但是如果它正在擦除进程内存空间,这没有意义。

0 个答案:

没有答案