in src/agent.cpp [27:47]
static void setRequiredCapabilities(jvmtiEnv *jvmti, jvmtiCapabilities &effective) {
jvmtiCapabilities potential;
std::memset(&potential, 0, sizeof(jvmtiCapabilities));
std::memset(&effective, 0, sizeof(jvmtiCapabilities));
jvmti->GetPotentialCapabilities(&potential);
if (potential.can_tag_objects) {
effective.can_tag_objects = 1;
}
if (potential.can_generate_object_free_events) {
effective.can_generate_object_free_events = 1;
}
if (potential.can_generate_sampled_object_alloc_events) {
canSampleAllocations = true;
effective.can_generate_sampled_object_alloc_events = 1;
}
if (potential.can_suspend) {
effective.can_suspend = 1;
}
}