From e64161d02857ae1e82b075ea3fe0bbc47f2e1695 Mon Sep 17 00:00:00 2001 From: prasun3 Date: Sat, 9 Nov 2019 16:03:12 +0530 Subject: [PATCH] Allow perf-map-agent to be loaded at startup Implemented Agent_OnLoad so that the agent may be loaded at startup. Previously the agent could only be attached at runtime --- src/c/perf-map-agent.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/c/perf-map-agent.c b/src/c/perf-map-agent.c index a5dea76..b28ddda 100644 --- a/src/c/perf-map-agent.c +++ b/src/c/perf-map-agent.c @@ -337,6 +337,21 @@ jvmtiError set_callbacks(jvmtiEnv *jvmti) { return (*jvmti)->SetEventCallbacks(jvmti, &callbacks, (jint)sizeof(callbacks)); } +JNIEXPORT jint JNICALL +Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +{ + open_map_file(); + + jvmtiEnv *jvmti; + (*vm)->GetEnv(vm, (void **)&jvmti, JVMTI_VERSION_1); + enable_capabilities(jvmti); + set_callbacks(jvmti); + set_notification_mode(jvmti, JVMTI_ENABLE); + + return 0; +} + + JNIEXPORT jint JNICALL Agent_OnAttach(JavaVM *vm, char *options, void *reserved) { open_map_file();