Skip to content

Commit 86c942a

Browse files
committed
engine options can be changed without reopening of the monitored application
1 parent bad8b92 commit 86c942a

File tree

5 files changed

+22
-2
lines changed

5 files changed

+22
-2
lines changed

visualvm/sampler.truffle/src/org/graalvm/visualvm/sampler/truffle/SamplerImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
import javax.swing.JToggleButton;
8181
import javax.swing.SwingUtilities;
8282
import org.graalvm.visualvm.core.VisualVM;
83+
import org.graalvm.visualvm.lib.common.ProfilingSettings;
8384
import org.graalvm.visualvm.lib.common.ProfilingSettingsPresets;
8485
import org.graalvm.visualvm.lib.jfluid.results.cpu.CPUResultsSnapshot;
8586
import org.graalvm.visualvm.lib.jfluid.results.memory.SampledMemoryResultsSnapshot;
@@ -562,6 +563,12 @@ public void takeThreadDump(boolean openView) {
562563
};
563564

564565
cpuSampler = new CPUSamplerSupport(application, ti, snapshotDumper, threadDumper) {
566+
@Override
567+
public boolean startSampling(ProfilingSettings settings, int samplingRate, int refreshRate) {
568+
setOptions(cpuSettings.getMode(), cpuSettings.isSplitCompiledInlined());
569+
return super.startSampling(settings, samplingRate, refreshRate);
570+
}
571+
565572
protected Timer getTimer() { return SamplerImpl.this.getTimer(); }
566573
};
567574
SwingUtilities.invokeLater(new Runnable() {

visualvm/sampler.truffle/src/org/graalvm/visualvm/sampler/truffle/cpu/Bundle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ MSG_unavailable_threads=Not available. Cannot access truffle JMX in target appli
5454

5555
MSG_unavailable_stacktraces=Not available. StackTraces instrument is not available. Please start your application with --stacktraces commandline option.
5656

57-
SEP_EngineSettings=Engine settings (reopen required)
57+
SEP_EngineSettings=Engine settings
5858

5959
LBL_Mode=Mode\:
6060

visualvm/sampler.truffle/src/org/graalvm/visualvm/sampler/truffle/cpu/CPUSamplerSupport.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ public DataViewComponent.DetailsView[] getDetailsView() {
116116
return detailsViews.clone();
117117
}
118118

119+
public void setOptions(String mode, boolean trackFlags) {
120+
threadInfoProvider.setOptions(mode, trackFlags);
121+
}
122+
119123
public boolean startSampling(ProfilingSettings settings, int samplingRate, int refreshRate) {
120124
GenericFilter sf = settings.getInstrumentationFilter();
121125
InstrumentationFilter filter = new InstrumentationFilter(sf);

visualvm/sampler.truffle/src/org/graalvm/visualvm/sampler/truffle/cpu/CPUSettingsSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ public abstract class CPUSettingsSupport {
6060
private static final String PROP_SPLIT_COMPILED_INLINED = "CPUSettingsSupport.SplitCompiledInlined"; // NOI18N
6161

6262
private static enum Mode {
63-
ROOTS { @Override public String toString() { return NbBundle.getMessage(CPUSettingsSupport.class, "MODE_ROOTS"); } }, // NOI18N
6463
EXCLUDE_INLINED_ROOTS { @Override public String toString() { return NbBundle.getMessage(CPUSettingsSupport.class, "MODE_EXCLUDE_INLINED_ROOTS"); } }, // NOI18N
64+
ROOTS { @Override public String toString() { return NbBundle.getMessage(CPUSettingsSupport.class, "MODE_ROOTS"); } }, // NOI18N
6565
STATEMENTS { @Override public String toString() { return NbBundle.getMessage(CPUSettingsSupport.class, "MODE_STATEMENTS"); } }, // NOI18N
6666
};
6767

visualvm/sampler.truffle/src/org/graalvm/visualvm/sampler/truffle/cpu/ThreadInfoProvider.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,15 @@ boolean loadAgent(Application app) {
148148
return false;
149149
}
150150

151+
void setOptions(String mode, boolean trackFlags) {
152+
try {
153+
tbean.setMode(mode);
154+
tbean.setTrackFlags(trackFlags);
155+
} catch (Exception ex) {
156+
LOGGER.log(Level.INFO, "threadBean.setMode(), setTrackFlags()", ex); // NOI18N
157+
}
158+
}
159+
151160
private static void loadAgentIntoTargetJVM(final VirtualMachine virtualMachine, final String jar, final String options)
152161
throws IOException, AgentLoadException, AgentInitializationException {
153162
try {

0 commit comments

Comments
 (0)