DYLD_PRINT_LIBRARIES 不工作
DYLD_PRINT_LIBRARIES not working
尝试使用其他 DYLD_ 属性进行试验,我发现 jvm 正在使用属性进行操作,并且在执行期间会忽略它们。
我的 Java 测试:
class Env {
public static void main(String... args) {
System.getenv().entrySet().stream().forEach(e -> System.out.println(e.getKey() + " = " + e.getValue()));
}
}
调用:
$ export DYLD_PRINT_LIBRARIES=1
$ export MY_PRINT_LIBRARIES=2
$ javac Env.java && java Env|grep PRINT
MY_PRINT_LIBRARIES = 2
$
另一边,我的C测试:
#include <stdio.h>
int main(int argc, char **argv, char **envp) {
while (*envp) {
printf("%s\n", *envp);
envp++;
}
return 0;
}
调用:
$ gcc env.c && ./a.out|grep PRINT
dyld: loaded: /Users/okutane/test/java/./a.out
dyld: loaded: /usr/lib/libSystem.B.dylib
dyld: loaded: /usr/lib/system/libcache.dylib
...
dyld: loaded: /usr/lib/libc++.1.dylib
dyld: loaded: /usr/lib/libDiagnosticMessagesClient.dylib
MY_PRINT_LIBRARIES=2
DYLD_PRINT_LIBRARIES=1
$
我希望 jvm 测试也能正常工作,有什么解决方法吗?
随着 SIP 的引入,所有匹配 DYLD_*
的环境变量都将在执行受限二进制文件之前被删除。这包括您将使用的 /usr/bin/java
二进制文件:
$ ls -lOL /usr/bin/java
-rwxr-xr-x 1 root wheel restricted,compressed 58560 Sep 7 06:41 /usr/bin/java*
尝试使用其他 DYLD_ 属性进行试验,我发现 jvm 正在使用属性进行操作,并且在执行期间会忽略它们。
我的 Java 测试:
class Env {
public static void main(String... args) {
System.getenv().entrySet().stream().forEach(e -> System.out.println(e.getKey() + " = " + e.getValue()));
}
}
调用:
$ export DYLD_PRINT_LIBRARIES=1
$ export MY_PRINT_LIBRARIES=2
$ javac Env.java && java Env|grep PRINT
MY_PRINT_LIBRARIES = 2
$
另一边,我的C测试:
#include <stdio.h>
int main(int argc, char **argv, char **envp) {
while (*envp) {
printf("%s\n", *envp);
envp++;
}
return 0;
}
调用:
$ gcc env.c && ./a.out|grep PRINT
dyld: loaded: /Users/okutane/test/java/./a.out
dyld: loaded: /usr/lib/libSystem.B.dylib
dyld: loaded: /usr/lib/system/libcache.dylib
...
dyld: loaded: /usr/lib/libc++.1.dylib
dyld: loaded: /usr/lib/libDiagnosticMessagesClient.dylib
MY_PRINT_LIBRARIES=2
DYLD_PRINT_LIBRARIES=1
$
我希望 jvm 测试也能正常工作,有什么解决方法吗?
随着 SIP 的引入,所有匹配 DYLD_*
的环境变量都将在执行受限二进制文件之前被删除。这包括您将使用的 /usr/bin/java
二进制文件:
$ ls -lOL /usr/bin/java
-rwxr-xr-x 1 root wheel restricted,compressed 58560 Sep 7 06:41 /usr/bin/java*