【发布时间】:2016-09-14 21:38:34
【问题描述】:
为了支持更好的分析数据,我希望我的 JVMTI 代理启用几个 JVM 标志。 有问题的代理是Honest-Profiler,它只能在启动时加载。
我想启用标志:-XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints
根据记录的问题here,如果未打开标志,我们会得到一个有偏见的配置文件。最好不要警告用户而只启用该标志。
【问题讨论】:
-
如果你找不到合法的解决方案,@apangin 有一个血腥的方法:github.com/odnoklassniki/one-elf/blob/master/test/one/jvm/… 它找到加载的 libjvm.so 的地址并从 .so 地址 + .symtab 常量偏移量计算标志地址(但是它并不总是有效,取决于 VM 代码中的具体标志使用情况)