¿Hay una manera de activar las funciones de "Método de prefijo nativa" en un lenguaje java agente JVM (no nativo)?

maratón:

Antecedentes: Java tiene un mecanismo para instrumentar métodos nativos, básicamente, lo que le permite cambiar el nombre del método nativo con un prefijo de set y luego crear un método que los delegados a que, en el código de bytes.

Que aparece de forma predeterminada este será anulado. Llamando Instrumentation.setNativePrefix()lleva a cabo un control sobre InstrumentationImpl.mEnvironmentSupportsNativeMethodPrefix, lo que veo en los valores por defecto de código JVM C a "falso".

Veo que hay posiblemente una manera que le permita con un agente nativo a través de JVMTI, pero no puedo encontrar nada de lo que le permite con un agente de lenguaje Java.

Holger:

Las capacidades requeridas para un agente de Java son determinadas por los atributos manifiestos de su archivo jar, como se especifica en la parte inferior de la documentación del paquete :

Los atributos se manifiestan

Los siguientes atributos se manifiestan están definidos para un archivo JAR agente:

...

  • Can-Set-Nativo-Método-Prefijo
    Boolean ( trueo false, casos irrelevante). Es la capacidad de establecer el método de prefijo nativa necesaria para dicho agente. Otros valores que truese consideran false. Este atributo es opcional, el valor por defecto es false.

Yo no lo probamos específicamente con el prefijo método nativo, pero sé de las otras capacidades (redefinición y retransformación) los cuales se presenten sólo como el apoyo de la Instrumentationinterfaz cuando solicitado anteriormente a través de los atributos de manifiesto. La ausencia de cualquier agente que solicita el tiempo de inicio de la función puede incluso hacer que sea imposible para solicitar la función de tarde-en por un agente cargado a través de la API Adjuntar.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=218708&siteId=1
Recomendado
Clasificación