为什么Android / Intel上libc
的全局变量environ
的值为零?
我有一段第三方原生代码,无条件解除environ
提供的libc
。它偶尔会在Android Intel设备上崩溃;最后一次在Android 4.2.1上使用Intel Atom Z2420观看华硕ME371MG平板电脑。我无法在具有相同4.2.1的模拟器上重现它。
有问题的代码位于共享对象(SO)启动代码中。正在调用启动代码,通过崩溃堆栈,通过第一个调用SO的方法调用(从另一个SO执行)。
我从来没有在Android / ARM系统上看到这种崩溃。
我想知道我是否可以通过强制将environ
设置为来自调用者代码的合理内容来解决这个问题。当多个SO加载到进程中时,它们是否共享libc数据?
与this相关。