Я пытаюсь использовать JVMTI для написания небольшого отладчика Java на C ++. Я читаю здесь: http://java.sun.com/developer/technicalArticles/Programming/jvmti/ что JVM должна вызывать экспортированный метод, определенный как JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved)
JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved)
Но я не вижу этот метод, вызываемый при запуске отладчика, даже если я запускаю целевую программу Java. Это правильный способ запустить JVMTI? Предполагается, что он вызывается автоматически при запуске Java-программы?
Код агента отладки загружается при вводе аргумента командной строки "-agentlib" при вызове Java-программы, например:
$java -agentlib:jvmti_debugger javaSampleClass
Немного более свежая статья об этом расположена здесь .