Giter Club home page Giter Club logo

visualvm's Introduction

VisualVM (master) sources repository

VisualVM is a visual tool integrating commandline JDK tools and lightweight profiling capabilities. See https://visualvm.github.io for details, downloads and documentation.

Get the tools

Use Apache Ant 1.9.15 or above and Oracle JDK 8 to build VisualVM from this repository.

Get the sources

First download or clone this repository into directory visualvm. There are two project suites included:

  • visualvm (visualvm/visualvm) - suite for the core VisualVM tool
  • plugins (visualvm/plugins) - suite for the VisualVM plugins available in Plugins Center

Configure the dependencies

Then download and extract the NetBeans Platform 19 into directory visualvm/visualvm (should create visualvm/visualvm/netbeans).

How to build

To build VisualVM, use ant build-zip command in the visualvm/visualvm directory.

How to run

To run VisualVM, use ant run command in the visualvm/visualvm directory.

Build and run plugins

To build or run the plugins suite, use ant build or ant run in the visualvm/plugins directory. This will automatically build the zip distribution of the core VisualVM tool into visualvm/visualvm/dist/visualvm.zip and extract it into the visualvm/plugins/visualvm directory. After that the build of the plugins suite continues to build each of the individual plugins. Running the plugins suite means starting VisualVM with all the plugins installed.

Contributing

We highly appreciate any feedback! Please let us know your ideas, missing features, or bugs found. Either file a RFE/bug or leave us a message. For legal reasons, we cannot accept external pull requests. See CONTRIBUTING for details.

Security

Please consult the security guide for our responsible security vulnerability disclosure process

License

Copyright (c) 2017, 2023 Oracle and/or its affiliates. Released under the GNU General Public License, version 2, with the Classpath Exception.

visualvm's People

Contributors

bjfish avatar dbalek avatar dstrupl avatar jbecicka avatar jisedlac avatar jlahoda avatar mkleint avatar thurka avatar tzezula avatar vladimir-voskresensky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

visualvm's Issues

Unable to find references for a thread from an ExecutorService created with Executors.newFixedThreadPool with many lost handle ExecutorService instances

I was looking for an issue which was causing thread exhaustion on a system. The end result was lost ExecutorService instances created by someone calling Executors.newFixedThreadPool without shutting down those instances or even tracking their references, but VisualVM couldn't tell me where they were. I had a handle on any number of the thousands of threads, but there reference calculation spun forever. I even left it sitting for many hours. This was using a heap dump. I had multiple dumps which I tried this on, and the result was the same. A simple test case should be to call Executors.newFixedThreadPool multiple times without tracking the instance from some thread, having the executors execute tasks matching the size of the pool, until OOMEs are reached; be sure and give it a ThreadFactory to make names to make them easier to find. My heap dump size info follows:

File size: 230 MB

Total bytes: 206,598,574
Total classes: 21,386
Total instances: 2,940,614
Classloaders: 1,089
GC roots: 7,960
Number of objects pending for finalization: 0

The steps beyond creating and then opening the heap dump:

  1. Go to classes
  2. Filter by entering "Thread"
  3. Double click on java.util.Thread
  4. Make sure the "References" pane is showing
  5. Click on various instances of thread which match the ThreadFactory naming pattern used in the test
  6. Notice the reference window keeps searching, but never will find other references than this
  7. Go to classes
  8. Filter by entering "ThreadPoolExecutor"
  9. Click on various instances, and notice you can drill down to the workers->table and see references to threads with some matching the naming patterns used for the test

From the about windows details:
Version: 1.3.9 (Build 161004); platform 20161002-268c3bcd7a42

System: Mac OS X (10.11.6) , x86_64 64bit

Java: 1.8.0_102; Java HotSpot(TM) 64-Bit Server VM (25.102-b14, mixed mode)

I'm sure this is the case for some other things, but this is a definite and specific example

Exception in thread "http-bio-8080-exec-120" java.lang.OutOfMemoryError: PermGen space

Hi,

I am seeing the below PermGen space issue in tomcat catalina.out file. Currently i am running Apache Tomcat Version 7.0.59 on CentOS release 6.8 (Final)
java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

Exception in thread "http-bio-8080-exec-120" java.lang.OutOfMemoryError: PermGen space
Exception in thread "http-bio-8080-exec-165" java.lang.OutOfMemoryError: PermGen space

2016-11-28 13:40:30.543 ERROR 19011 --- [o-8080-exec-110] o.s.boot.context.web.ErrorPageFilter : Forwarding to error page from request [/push-notifications] due to exception [PermGen space]
java.lang.OutOfMemoryError: PermGen space

Is there a way to debug PermGen space issue and are there any tools to debug the same. Currently i have set -XX:MaxPermSize=1024m. How do i determine what value should be set for MaxPermSize?

Any help will be highly appreciable. Please do let me know if you need any additional details.

Thanks in Advance

Regards,

Kaushal

[RFC] provide option to disable auto connect JMX when VisualVM start

hi folks
I have several remote servers managed in VisualVM, and each has a JMX connection.
every time I start VisualVM, it tries to reconnect the JMX which make the start really slow and not responding for a quite long while.

the workaround for now is to delete the JMX connection before close VisualVM, and re-add next time.

so could you provide an option to disable this auto JMX connect.
thanks

Computing descriptions hang when using a SOCKS proxy

Currently we use a socks proxy to make remote connections to our servers and it works great. We do however run into hangs when certain local java processes are running, for example intellij. When its running it seems to hang on "computing descriptions" when we have the proxy settings on. If we switch back to using the system proxy settings the local process load up fine, however our remote connections won't work since we're relying on the socks proxy for that.

Please let me know if you need any more information, or if you have any suggestions for how we might be able to make VisualVM work nicely with both local processes and remote (via SOCKS).

Build instructions not clear. Build fails.

So, couple things on building from the source:

  1. the README says to download a file that is already contained within the repository. This step could be removed.
  2. since the nb platform zip is already in it, build.xml could have the extracting as part of the build process

Last, while trying to build with ant build-zip, I got the following error:

build.txt

Missing OQL lexing source

The generated .java file from jflex exists but not the original lexer source. The original file name is in the comments:

/home/jb198685/projects/visualvm/plugins/jsyntaxpane-lib/external/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/oql.flex

java.lang.NoClassDefFoundError: org/netbeans/lib/profiler/server/ProfilerRuntimeCPUFullInstr

Complete instructions for running VisualVM against JBoss EAP 6.2.0 GA and JDK 1.7.0_80 are a little thin.

In NetBeans issue 214401, @thurka mentions:

You need to modify JBoss startup arguments. JBoss has to be started with "-Djboss.modules.system.pkgs=org.jboss.byteman,org.netbeans.lib.profiler.server" system property.

Others have mentioned similar parameters:

-Djboss.modules.system.pkgs=org.netbeans.lib.profiler.server -Dorg.osgi.framework.bootdelegation=org.netbeans.lib.profiler.server,org.netbeans.lib.profiler.server.*

The ProfilerRuntimeCPUFullInstr class can be found within %JAVA_HOME%\lib\visualvm\profiler\lib\jfluid-server.jar, which is the version that must be run by JBoss. Without additional configuration, it seems unlikely that JBoss can find the class.

The file domain.bat has been changed to include:

set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.jboss.byteman,org.netbeans.lib.profiler.server"

Yet this change alone is insufficient. There are a number of ways to configure domain.bat so that the JBoss JVM, when started, can find the class that won't work:

  • Set CLASSPATH or JBOSS_CLASSPATH.
  • Use the -cp or --classpath parameter.
  • Create a custom module.

How can JBoss be configured to find ProfilerRuntimeCPUFullInstr, tucked away inside jfluid-server.jar?

[Feature] JMX Proxy - Attach to running JVM and make available remotely

Feature Requests - JMX Proxy

I came across the blog post here that shows how to use jstatd to basically proxy connections to a running JVM from a remote VisualVM instance. How cool. But it is limited and I wish there was a way to do this w/ JMX. Sure, I could stop the JVM and add the jmxremote* JVM properties, but then I'd have to stop a Tomcat instance in this case.

I am not a Java Developer or I would take it on myself, but I presume the maintainers of VisualVM are java developers. Furthermore, a JMX proxy might be something other VisualVM users are interested in. Is this a feature/tool you would consider taking on?

Obligatory ASCII Art

  +----Host----+               +--Workstation-+
  ||Target JVM||               |              |
  ||          ||               |              |
  ||     ^    ||               |              |
  |------------|               |              |
  ||Proxy|JVM--|               +-VisualVM/ETC-+
  ||     +    ||               ||            ||
  ||         ^--------TCP--------+           ||
  |------------|               |--------------|
  +------------+               +--------------+

Example Usage

  1. Connect to remote machine
  2. Run java -jar com.foo.jmx-proxy.jar -Djmx-proxy.localpid=1234 -Djmx-proxy.port=9999 -Djmx-proxy.address=localhost
  3. SSH and tunnel 9999 to target box
  4. Start Visual VM on workstation, connect to localhost:9999
  5. Profit!

Thoughts

  • Similar settings to com.sun.management.jmxremote.*
    • Auth, ssl, port, server etc
  • Maybe socks proxy support? ssh -D
  • Instead of specifying PID could it be selectable like w/ jstatd+VisualVM

Local Java applications cannot be detected - environment: RHEL Linux / IBM Java / Eclipse

I am running Red Hat Enterprise Linux Server release 6.9 (Santiago).
Using IBM JDK (ibm-java-x86_64-sdk-8.0-4.6.x86_64).
I am using Eclipse (Mars.1 Release (4.5.1))
I installed VisualVM 1.3.9 and VisualVM Launcher.

I have a debug configuration which uses the VisualVM Launcher and VisualVM starts however it immediately displays the error "Local Java applications cannot be detected" with a link to https://visualvm.github.io/troubleshooting.html#jpswin and a second window "Cannot open requested application." The suggestions in the troubleshooting guide suggests it can happen on Windows (I am running on Linux) and on Windows it is caused by permissions problems %TMP%\hsperfdata_username file.

I could not locate this file under Linux (what is the file name on Linux?) however all temporary directories have read/write access for the test id:
/home/me/.visualvm/1.3.9
/home/me/.cache/visualvm/1.3.9
/tmp

I tried starting visual vm with "-XX:+PerfBypassFileSystemCheck" as suggested in the guide
./visualvm --jdkhome /opt/ibm/java-x86_64-80 -XX:+PerfBypassFileSystemCheck
but this generated an error "unknown option"

The following is displayed if I ran from the command line:
Aug 16, 2017 4:55:20 PM org.openide.util.lookup.implspi.ActiveQueue reportError
WARNING: Cannot hack ReferenceQueue to fix bug #206621!
java.lang.NoSuchFieldException: lock
at java.lang.Class.getDeclaredField(Class.java:779)
at org.openide.util.lookup.implspi.ActiveQueue$Impl.(ActiveQueue.java:83)
at org.openide.util.lookup.implspi.ActiveQueue.queue(ActiveQueue.java:71)
at org.openide.util.lookup.AbstractLookup.activeQueue(AbstractLookup.java:762)
at org.openide.util.lookup.AbstractLookup.access$600(AbstractLookup.java:80)
at org.openide.util.lookup.AbstractLookup$ReferenceToResult.(AbstractLookup.java:1362)
at org.openide.util.lookup.AbstractLookup$ReferenceToResult.(AbstractLookup.java:1345)
at org.openide.util.lookup.AbstractLookup.lookup(AbstractLookup.java:496)
at org.openide.util.Lookup.lookupResult(Lookup.java:251)
at org.openide.util.Lookup.lookupAll(Lookup.java:271)
at org.netbeans.MainImpl$BootClassLoader.allCLIs(MainImpl.java:376)
at org.netbeans.CLIHandler.initialize(CLIHandler.java:384)
at org.netbeans.MainImpl.execute(MainImpl.java:193)
at org.netbeans.MainImpl.main(MainImpl.java:85)
at org.netbeans.Main.main(Main.java:83)

What could be causing this problem? What can I do to troubleshoot and fix?

image

NullPointerException when starting with eclipse Launcher

When I start an arbitrary main or an JUnit-Test with the VisualVM launcher, I always get an NullPointerException:

An internal error occurred during: "Launching BenchmarkTest".
java.lang.NullPointerException

Unfortunately, that is the only output that I receive. Is there a workaround for this?

I've set in Preferences -> Run/Debug -> Launching -> VisualVM Configuration VisualVM executable to /usr/bin/visualvm and JDK Home to /usr/lib/jvm/java-8-openjdk-amd64, and I am using Ubuntu 16.10.

Connection to Java 9 App fails running on Java 9

java.lang.IllegalArgumentException: Unexpected composite type for ThreadInfo
at sun.management.ThreadInfoCompositeData.validateCompositeData(ThreadInfoCompositeData.java:372)
at sun.management.ThreadInfoCompositeData.getInstance(ThreadInfoCompositeData.java:68)
at java.lang.management.ThreadInfo.(ThreadInfo.java:263)
at java.lang.management.ThreadInfo.from(ThreadInfo.java:794)
Caused: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$CompositeBuilderViaFrom.fromCompositeData(DefaultMXBeanMappingFactory.java:1018)
Caused: java.io.InvalidObjectException: Failed to invoke from(CompositeData)
at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.invalidObjectException(DefaultMXBeanMappingFactory.java:1457)
at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$CompositeBuilderViaFrom.fromCompositeData(DefaultMXBeanMappingFactory.java:1021)
at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$CompositeMapping.fromNonNullOpenValue(DefaultMXBeanMappingFactory.java:919)
at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$NonNullMXBeanMapping.fromOpenValue(DefaultMXBeanMappingFactory.java:133)
at com.sun.jmx.mbeanserver.ConvertingMethod.fromOpenReturnValue(ConvertingMethod.java:131)
at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:168)
at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:258)
Caused: java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy13.getThreadInfo(Unknown Source)
at com.sun.tools.visualvm.jmx.impl.JmxSupport.isReadOnlyConnection(JmxSupport.java:126)
at com.sun.tools.visualvm.jmx.impl.JmxModelImpl.isTakeThreadDumpSupported(JmxModelImpl.java:369)
at com.sun.tools.visualvm.application.views.threads.ApplicationThreadsViewProvider.resolveThreads(ApplicationThreadsViewProvider.java:85)
at com.sun.tools.visualvm.application.views.threads.ApplicationThreadsViewProvider.supportsViewFor(ApplicationThreadsViewProvider.java:49)
at com.sun.tools.visualvm.application.views.threads.ApplicationThreadsViewProvider.supportsViewFor(ApplicationThreadsViewProvider.java:45)
at com.sun.tools.visualvm.core.ui.DataSourceViewsManager.getViews(DataSourceViewsManager.java:136)
at com.sun.tools.visualvm.core.ui.DataSourceWindowManager.openWindowAndAddView(DataSourceWindowManager.java:206)
at com.sun.tools.visualvm.core.ui.DataSourceWindowManager.access$000(DataSourceWindowManager.java:50)
at com.sun.tools.visualvm.core.ui.DataSourceWindowManager$2.run(DataSourceWindowManager.java:117)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1423)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)

Can not get CPU usage of local process nor sample the process

When I start an java process, nevertheless whether I do it directly, via maven or via eclipse, I can not monitor CPU usage nor sample the process.

I've started visualvm with visualvm --jdkhome /usr/lib/jvm/java-8-openjdk-amd64/ and am running visualvm 1.3.8 installed from ubuntu 16.10 latest repository. I have no other jvm installed, so I assume they are running on the same vm (update-alternatives does only return this one java-installation).

When I try to sample the same process with the latest version from git, which I've cloned and I am running with ant run, I can see the CPU and start sampling.

Is this a known issue, or is there an configuration which I could add to my package-installed visualvm?

Save connections for later use

Hello,
I have to connect via Port Forwarding to a JVM inside a VPN. The problem is now, that I have to enter the JMX connection details every time I restart VisualVM. Is this normal? How can I circumvent this?

Cheers,
Daniel

Can not save snapshots of profiler or sampler when multiple users run VisualVM on the same Machine

When multiple users work on the same Machine, VisualVM will only work for the first user starting it properly.
All other users can't save snapshots.

Since snapshots are saved in /tmp/visualvm.dat/ this folder belongs to the first user and any other user can't write to it.

A workaround would be to add the username to the tmp folder, e.g. /tmp/visualvm.dat_USERNAME.

Here's the error stacktrace:

java.lang.IllegalStateException: Cannot create storage directory /tmp/visualvm.dat/localhost_24976
	at com.sun.tools.visualvm.core.datasource.Storage.getDirectory(Storage.java:125)
[catch] at com.sun.tools.visualvm.profiler.ProfilerSnapshotAction$SnapshotsListenerImpl.snapshotSaved(ProfilerSnapshotAction.java:120)
	at org.netbeans.modules.profiler.ResultsManager$10.run(ResultsManager.java:1060)
	at org.netbeans.lib.profiler.common.CommonUtils.runInEventDispatchThread(CommonUtils.java:61)
	at org.netbeans.modules.profiler.ResultsManager.fireSnapshotSaved(ResultsManager.java:1057)
	at org.netbeans.modules.profiler.ResultsManager.saveSnapshot(ResultsManager.java:897)
	at org.netbeans.modules.profiler.ResultsManager.saveSnapshot(ResultsManager.java:961)
	at org.netbeans.modules.profiler.ProfilerControlPanel2$ResultsSnippetPanel.snapshotTaken(ProfilerControlPanel2.java:934)
	at org.netbeans.modules.profiler.ProfilerControlPanel2$Listener.snapshotTaken(ProfilerControlPanel2.java:222)
	at org.netbeans.modules.profiler.ResultsManager$11.run(ResultsManager.java:1074)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Can't add new JMX Connections - OK button greyed out

This is the weirdest thing - when I try to add new JMX connections, the OK button is greyed out and is not clickable; therefore, I'm unable to add new JMX connections. Anyone seen this? Using VisualVM 1.3.9 with Java v8 update 131 on a Windows 7 workstation.

Thanks in advance!

Profiler calibration failed when using SOCKS proxy

It was succeed while turn off system proxy setting. The calibration module seems not to apply no proxy options.

The fail-log is below:
`-------------------------------------------------------------------------------

Log Session: Wednesday, January 25, 2017 10:45:29 AM KST
System Info:
Product Version = VisualVM 1.3.9
Operating System = Linux version 4.4.39-gentoo running on amd64
Java; VM; Vendor = 1.8.0_112; Java HotSpot(TM) 64-Bit Server VM 25.112-b15; Oracle Corporation
Runtime = Java(TM) SE Runtime Environment 1.8.0_112-b15
Java Home = /opt/oracle-jdk-bin-1.8.0.112/jre
System Locale; Encoding = ko_KR (visualvm); UTF-8
Home Directory = /home/hayarobi
Current Directory = /home/hayarobi
User Directory = /home/hayarobi/.visualvm/1.3.9
Cache Directory = /home/hayarobi/.cache/visualvm/1.3.9
Installation = /home/hayarobi/Developer/visualvm/visualvm
/home/hayarobi/Developer/visualvm/profiler
/home/hayarobi/Developer/visualvm/platform
Boot & Ext. Classpath = /opt/oracle-jdk-bin-1.8.0.112/jre/lib/resources.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/rt.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/sunrsasign.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/jsse.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/jce.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/charsets.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/jfr.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/classes:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/ext/cldrdata.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/ext/jaccess.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/ext/sunec.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/ext/sunpkcs11.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/ext/zipfs.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/ext/dnsns.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/ext/sunjce_provider.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/ext/localedata.jar:/opt/oracle-jdk-bin-1.8.0.112/jre/lib/ext/nashorn.jar
Application Classpath = /home/hayarobi/Developer/visualvm/platform/lib/boot.jar:/home/hayarobi/Developer/visualvm/platform/lib/org-openide-modules.jar:/home/hayarobi/Developer/visualvm/platform/lib/org-openide-util-lookup.jar:/home/hayarobi/Developer/visualvm/platform/lib/org-openide-util.jar:/opt/oracle-jdk-bin-1.8.0.112/lib/dt.jar:/opt/oracle-jdk-bin-1.8.0.112/lib/tools.jar
Startup Classpath = /home/hayarobi/Developer/visualvm/platform/core/org-openide-filesystems.jar:/home/hayarobi/Developer/visualvm/platform/core/core.jar:/home/hayarobi/Developer/visualvm/visualvm/core/com-sun-tools-visualvm-modules-startup.jar:/home/hayarobi/Developer/visualvm/visualvm/core/locale/core_visualvm.jar


INFO [org.netbeans.core.startup.NbEvents]: Turning on modules:
org.openide.util.lookup [8.25.2 20161002-268c3bcd7a42]
org.openide.util [8.39.1 20161002-268c3bcd7a42]
org.openide.modules [7.43.1 20161002-268c3bcd7a42]
org.netbeans.api.annotations.common/1 [1.24.1 20161002-268c3bcd7a42]
org.openide.filesystems [8.12.1 20161002-268c3bcd7a42]
org.openide.awt [7.62.1 20161002-268c3bcd7a42]
org.netbeans.api.progress/1 [1.38.1 20161002-268c3bcd7a42]
org.openide.dialogs [7.38.1 20161002-268c3bcd7a42]
org.openide.nodes [7.39.1 20161002-268c3bcd7a42]
org.openide.windows [6.71.1 20161002-268c3bcd7a42]
org.netbeans.modules.editor.mimelookup/1 [1.36.1 20161002-268c3bcd7a42]
org.openide.text [6.62.2 20161002-268c3bcd7a42]
org.netbeans.swing.tabcontrol [1.51.1 20161002-268c3bcd7a42]
org.netbeans.swing.outline [1.30.1 20161002-268c3bcd7a42]
org.openide.explorer [6.57.1 20161002-268c3bcd7a42]
org.openide.actions [6.35.1 20161002-268c3bcd7a42]
org.netbeans.modules.queries/1 [1.39.1 20161002-268c3bcd7a42]
org.openide.loaders [7.57.2 20161002-268c3bcd7a42]
org.openide.io [1.45.1 20161002-268c3bcd7a42]
org.netbeans.swing.plaf [1.37.1 20161002-268c3bcd7a42]
org.netbeans.spi.quicksearch [1.23.1 20161002-268c3bcd7a42]
org.netbeans.bootstrap/1 [2.69.3 20161002-268c3bcd7a42]
org.netbeans.core.startup/1 [1.55.2 20161002-268c3bcd7a42]
org.netbeans.modules.settings/1 [1.45.1 20161002-268c3bcd7a42]
org.netbeans.modules.sendopts/2 [2.31.1 20161002-268c3bcd7a42]
org.netbeans.modules.sampler [1.10.1 20161002-268c3bcd7a42]
org.netbeans.modules.progress.ui [1.29.2 20161002-268c3bcd7a42]
org.netbeans.modules.profiler.utilities/1 [1.31.1 20161002-268c3bcd7a42]
org.netbeans.lib.profiler/1 [1.59.4 20161002-268c3bcd7a42]
org.netbeans.lib.profiler.charts/1 [1.25.1 20161002-268c3bcd7a42]
org.netbeans.lib.profiler.common/1 [1.32.1 20161002-268c3bcd7a42]
org.netbeans.modules.profiler.api/1 [1.19.1 20161002-268c3bcd7a42]
org.netbeans.lib.profiler.ui/1 [1.45.1 20161002-268c3bcd7a42]
org.netbeans.modules.keyring [1.20.1 20161002-268c3bcd7a42]
org.netbeans.core/2 [3.46.1 20161002-268c3bcd7a42]
org.netbeans.modules.options.api/1 [1.41.1 20161002-268c3bcd7a42]
org.netbeans.modules.profiler.selector.api/1 [1.29.1 20161002-268c3bcd7a42]
org.netbeans.modules.profiler.attach/2 [2.15.1 20161002-268c3bcd7a42]
org.netbeans.modules.profiler.selector.ui/1 [1.26.1 20161002-268c3bcd7a42]
org.netbeans.modules.profiler/2 [2.22.1 20161002-268c3bcd7a42]
org.netbeans.modules.profiler.snaptracer/1 [1.17.1 20161002-268c3bcd7a42]
org.netbeans.modules.profiler.oql/2 [2.12.1 20161002-268c3bcd7a42]
org.netbeans.modules.profiler.heapwalker [1.99.2 20161002-268c3bcd7a42]
org.netbeans.modules.masterfs/2 [2.48.3 20161002-268c3bcd7a42]
org.netbeans.modules.masterfs.nio2 [1.12.1 20161002-268c3bcd7a42]
org.netbeans.libs.jna/1 [1.38.1 20161002-268c3bcd7a42]
org.netbeans.modules.masterfs.linux [1.10.1 20161002-268c3bcd7a42]
org.netbeans.modules.keyring.fallback [1.4.1 20161002-268c3bcd7a42]
org.netbeans.modules.keyring.impl [1.20.1 20161002-268c3bcd7a42]
org.netbeans.modules.editor.mimelookup.impl/1 [1.27.1 20161002-268c3bcd7a42]
org.netbeans.modules.autoupdate.services [1.47.2 20161002-268c3bcd7a42]
org.netbeans.modules.autoupdate.ui [1.41.1 20161002-268c3bcd7a42]
org.netbeans.modules.autoupdate.cli [1.9.1 20161002-268c3bcd7a42]
org.netbeans.libs.jna.platform/1 [1.8.1 20161002-268c3bcd7a42]
org.netbeans.core.windows/2 [2.77.2 20161002-268c3bcd7a42]
org.netbeans.core.ui/1 [1.41.1 20161002-268c3bcd7a42]
org.netbeans.core.network [1.6.1 20161002-268c3bcd7a42]
org.netbeans.core.nativeaccess/1 [1.27.1 20161002-268c3bcd7a42]
org.netbeans.core.multitabs/1 [1.8.1.1 1 20161002-268c3bcd7a42]
com.sun.tools.visualvm.uisupport/0 [1.3 161004]
com.sun.tools.visualvm.core/0 [1.6 161004]
com.sun.tools.visualvm.host/0 [1.0 161004]
com.sun.tools.visualvm.application/0 [1.9 161004]
com.sun.tools.visualvm.tools/0 [1.4 161004]
com.sun.tools.visualvm.coredump/0 [1.1 161004]
com.sun.tools.visualvm.threaddump/0 [1.0 161004]
com.sun.tools.visualvm.heapdump/0 [1.1 161004]
com.sun.tools.visualvm.profiling/0 [1.3 161004]
com.sun.tools.visualvm.sampler [2.1 161004]
com.sun.tools.visualvm.sa/0 [1.1 161004]
com.sun.tools.visualvm.modules.startup [1.1 161004]
com.sun.tools.visualvm.profiler/0 [1.5 161004]
com.sun.tools.visualvm.modules.visualgc [2.1.2 131125]
com.sun.tools.visualvm.modules.appui [1.0 161004]
com.sun.tools.visualvm.jvmstat/0 [1.0 161004]
com.sun.tools.visualvm.jvm/0 [1.1 161004]
com.sun.tools.visualvm.jmx/0 [1.4 161004]
com.sun.tools.visualvm.charts/0 [1.5 161004]
com.sun.tools.visualvm.host.views/0 [1.0 161004]
com.sun.tools.visualvm.host.remote/0 [1.0 161004]
com.sun.tools.visualvm.attach/0 [1.1 161004]
com.sun.tools.visualvm.application.views/0 [1.0 161004]
Cannot initialize GTK colors - using hardcoded defaults: java.lang.NoSuchMethodException: javax.swing.plaf.synth.SynthContext.getContext(java.lang.Class, javax.swing.JComponent, javax.swing.plaf.synth.Region, javax.swing.plaf.synth.SynthStyle, int)
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy resolver: Gnome
INFO [org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy]: GSettings system proxy resolver: manual - http for all (null)
INFO [org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy]: GSettings system proxy resolver: manual - http host (172.21.70.57)
INFO [org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy]: GSettings system proxy resolver: manual - http port (9090)
INFO [org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy]: GSettings system proxy resolver: manual - ho proxy hosts ([localhost,127.0.0.0/8,172.21.70.1/16,192.168.56.1/16,182.195.48.79แ…Ÿ/16,.score,devops.samsung.net,.dev.samsung.net])
INFO [org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy]: GSettings system proxy resolver: manual - https host (172.21.70.57)
INFO [org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy]: GSettings system proxy resolver: manual - https port (9090)
INFO [org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy]: GSettings system proxy resolver: manual - socks host (172.21.70.57)
INFO [org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy]: GSettings system proxy resolver: manual - socks port (1080)
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy reloading succeeded.
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy - mode: manual
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy - http host: 172.21.70.57
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy - http port: 9090
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy - https host: 172.21.70.57
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy - https port: 9090
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy - socks host: 172.21.70.57
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy - socks port: 1080
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy - no proxy hosts: localhost|127.0.0.0/8|172.21.70.1/16|192.168.56.1/16|182.195.48.79แ…Ÿ/16|.score|devops.samsung.net|.dev.samsung.net
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy TEST - http host: 172.21.70.57
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy TEST - http port: 9090
INFO [org.netbeans.ui.metrics.laf]: USG_LOOK_AND_FEEL
Diagnostic information
Input arguments:
-Djdk.home=/opt/oracle-jdk-bin-1.8.0.112
-Dnetbeans.default_userdir_root=/home/hayarobi/.visualvm
-Dnetbeans.running.environment=gnome
-Dnetbeans.dirs=/home/hayarobi/Developer/visualvm/visualvm:/home/hayarobi/Developer/visualvm/profiler:
-Dnetbeans.home=/home/hayarobi/Developer/visualvm/platform
-Xms24m
-Xmx256m
-Dnetbeans.accept_license_class=com.sun.tools.visualvm.modules.startup.AcceptLicense
-Dsun.jvmstat.perdata.syncWaitMs=10000
-Dsun.java2d.noddraw=true
-Dsun.java2d.d3d=false
--add-exports=java.desktop/sun.awt=ALL-UNNAMED
--add-exports=jdk.jvmstat/sun.jvmstat.monitor.event=ALL-UNNAMED
--add-exports=jdk.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
--add-exports=java.desktop/sun.swing=ALL-UNNAMED
--add-exports=jdk.attach/sun.tools.attach=ALL-UNNAMED
--add-modules=java.activation
-XX:+IgnoreUnrecognizedVMOptions
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/home/hayarobi/.visualvm/1.3.9/var/log/heapdump.hprof
Compiler: HotSpot 64-Bit Tiered Compilers
Heap memory usage: initial 24.0MB maximum 228.0MB
Non heap memory usage: initial 2.4MB maximum -1b
Garbage collector: PS Scavenge (Collections=8 Total time spent=0s)
Garbage collector: PS MarkSweep (Collections=2 Total time spent=0s)
Classes: loaded=5030 total loaded=5030 unloaded 0
INFO [org.netbeans.core.ui.warmup.DiagnosticTask]: Total memory 12,580,712,448
INFO [null]: Total physical memory 12,580,712,448
*** Profiler message (Wed Jan 25 10:45:46 KST 2017): Starting target application...
/opt/oracle-jdk-bin-1.8.0.112/bin/java -agentpath:/home/hayarobi/Developer/visualvm_139/profiler/lib/deployed/jdk16/linux-amd64/libprofilerinterface.so -Xbootclasspath/a:/home/hayarobi/Developer/visualvm_139/profiler/lib/jfluid-server.jar:/home/hayarobi/Developer/visualvm_139/profiler/lib/jfluid-server-15.jar org.netbeans.lib.profiler.server.ProfilerServer /home/hayarobi/Developer/visualvm_139/profiler/lib/deployed/jdk16/linux-amd64 5141 10 Profiler+Calibration+Run
WARNING [org.netbeans.modules.profiler.NetBeansProfiler]: IDEAppStatusHandler - errorAndWaitForConfirm: Data transfer error during instrumentation calibration
*** Profiler error (Wed Jan 25 10:45:47 KST 2017): exception while trying to connect to the target JVM:
java.net.SocketException: SOCKS server general failure
*** Profiler error (Wed Jan 25 10:45:47 KST 2017): connection with server not open
WARNING [org.netbeans.modules.profiler.NetBeansProfiler]: IDEAppStatusHandler - errorAndWaitForConfirm: null
`

NullPointerException when computing references

I'm trying to analyze a large heap dump (file is around 60GB) using VisualVM 1.3.9. There are a large number of int[] instances consuming the vast majority of the heap space, and I am trying to get to the bottom of why. However, when I click on one of the instances in the instance view, which starts to determine the referrers, it makes it about 2% through and then throws a NullPointerException (as seen in the error button hover). Full stack trace from logs:

SEVERE [org.openide.util.RequestProcessor]: Error in RequestProcessor org.netbeans.modules.profiler.heapwalk.model.BrowserUtils$1$1
java.lang.NullPointerException
    at org.netbeans.lib.profiler.heap.HprofHeap.computeReferences(HprofHeap.java:502)
    at org.netbeans.lib.profiler.heap.HprofHeap.findReferencesFor(HprofHeap.java:416)
    at org.netbeans.lib.profiler.heap.InstanceDump.getReferences(InstanceDump.java:116)
    at org.netbeans.modules.profiler.heapwalk.model.InstanceNode.getReferences(InstanceNode.java:144)
    at org.netbeans.modules.profiler.heapwalk.model.HeapWalkerNodeFactory.createReferences(HeapWalkerNodeFactory.java:353)
    at org.netbeans.modules.profiler.heapwalk.model.PrimitiveArrayNode$1.computeChildren(PrimitiveArrayNode.java:187)
    at org.netbeans.modules.profiler.heapwalk.model.BrowserUtils$1$1.run(BrowserUtils.java:301)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1423)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)

If I navigate to the OQL window and try it that way via referrers(heap.findObject("0x7fa8fb109ae0")), it runs for a while before printing:

javax.script.ScriptException: ReferenceError: "println" is not defined in at line number 1030

Any ideas on what the problem could be or how I could diagnose further? I am using Sun JDK 1.8.0_60 on Mac OS X, VisualVM 1.3.9.

macOS application bundle fails to start

Two dialogs are displayed:

(1) Cannot load window system persistent data, user directory content is broken...

(2) Cannot load even default layout, using internally predefined configuration.

After these dialogs are closed, I can display an unhandled exception. Unfortunately, copy does not work, so I will attach a screen shot.

screen shot 2017-04-11 at 5 31 19 pm

Hello plugin can not build

Use Netbeans 8.2 and visualvm1.3.9 build new HelloWorld plugin, I set the platform with visualvm but has no depes found.

ant -f C:\\Users\\sk\\Documents\\NetBeansProjects\\HelloVM -Dcontinue.after.failing.tests=true run
taskdefs:
common-init:
projectized-common.basic-init:
basic-init:
files-init:
nbm-license-init:
build-init:
Scanning for modules in C:\Users\sk\Desktop\vmt139\platform
Scanning for modules in C:\Users\sk\Desktop\vmt139\profiler
Cannot translate according to [file:/C:/Users/sk/Desktop/vmt139/platform/config/ModuleAutoDeps/org-netbeans-modules-options-api.xml, file:/C:/Users/sk/Desktop/vmt139/platform/config/ModuleAutoDeps/org-netbeans-modules-queries.xml, file:/C:/Users/sk/Desktop/vmt139/platform/config/ModuleAutoDeps/org-openide-explorer.xml, file:/C:/Users/sk/Desktop/vmt139/platform/config/ModuleAutoDeps/org-openide-filesystems.xml, file:/C:/Users/sk/Desktop/vmt139/platform/config/ModuleAutoDeps/org-openide-loaders.xml, file:/C:/Users/sk/Desktop/vmt139/platform/config/ModuleAutoDeps/org-openide-modules.xml, file:/C:/Users/sk/Desktop/vmt139/platform/config/ModuleAutoDeps/org-openide-nodes.xml, file:/C:/Users/sk/Desktop/vmt139/platform/config/ModuleAutoDeps/org-openide-text.xml, file:/C:/Users/sk/Desktop/vmt139/platform/config/ModuleAutoDeps/org-openide-util.xml] because could not find none of[org.netbeans.core.startup.base]
C:\Program Files\NetBeans 8.2\harness\build.xml:174: No dependent module com.sun.tools.visualvm.api.caching
BUILD FAILED (total time: 0 seconds)

Record profiling sessions from the command line

It would be awesome if we could invoke VisualVM from the command line to automate the recording of profiling sessions and then open the dump for inspection in the VisualVM UI at a later time.

Would such a feature be possible? What kind of changes would it take?

VisualVM 1.3.9 on macOS doesn't start

I get the following error dialogs:
"Cannot load even default layout, using internally predefined configuration"
"Cannot load window system persistent data, user directory content is broken. Resetting to default layout..."

Java version: 1.8.0_51

Is this a known bug?

Build failures

Following the instructions on the GitHub page I cloned the visuavlm repository, I downloaded and installed the netbeans profiler and then opened the project in NetBeans and tried to run. The error is;
Compiling 107 source files to /Users/kirk/Projects/java/visualvm/visualvm/core/build/classes
warning: [options] bootstrap class path not set in conjunction with -source 1.5
warning: [options] source value 1.5 is obsolete and will be removed in a future release
warning: [options] target value 1.5 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
/Users/kirk/Projects/java/visualvm/visualvm/core/src/com/sun/tools/visualvm/core/options/GeneralOptionsPanel.java:295: error: cannot access GlobalProfilingSettings
ProfilerIDESettings.getInstance().clearDoNotShowAgainMap();
class file for org.netbeans.lib.profiler.common.GlobalProfilingSettings not found

Building with Ant

[nb-javac] /Users/kirk/Projects/java/visualvm/visualvm/core/src/com/sun/tools/visualvm/core/options/GeneralOptionsPanel.java:295: error: cannot access GlobalProfilingSettings
[nb-javac] ProfilerIDESettings.getInstance().clearDoNotShowAgainMap();

Will try to resolve

Allow skipping ssl check in --openjmx cli

Skipping ssl is available when connecting to a remote jmx via the GUI but not via the cli.
Latest release (1.3.9) closes Issue 618 which addresses this but such feature doesn't seem to be present.

Tracked the commit pertaining to the issue 618.

StackOverflowError at Startup Profiler

I run VisualVM with installed Startup Profiler under Windows 7.
When I try to launch Startup Profiler just like mentioned here I get errors mentioned in the log.

messages.log


Version:
1.4 (Build 171211); platform 20171211-unknown-revn

System:
Windows 7 (6.1) Service Pack 1, amd64 64bit

Java:
1.8.0_144; Java HotSpot(TM) 64-Bit Server VM (25.144-b01, mixed mode)

Vendor:
Oracle Corporation, http://java.oracle.com/

Environment:
Cp1251; ru_RU (visualvm)

Clusters:
G:\visualvm_14\platform
G:\visualvm_14\visualvm
G:\visualvm_14\profiler

1.4 missing Visual GC plugin

After updating to VisualVM 1.4, I can no longer install the Visual GC plugin.

On the releases page, I see a com-sun-tools-visualvm-modules-visualgc.nbm asset for the 1.3.9 release, but not for 1.4.

Has this been removed intentionally? It is still listed on the Plugins page of the web site.

Cannot select any option in visualvm

Hello,
I recently download the visualvm 1.3.8. But after starting the application, I can choose the application to monitor but unable to select any of the options in the menu bar. Menu buttons are clickable but the menu closes the moment I try to select any option.

java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

OS : Centos 7

Make it possible to refresh connections.

I use to tunnel JMX ports for remote hosts. This works (though I don't quite get why the local port must equal the actual port).

The annoying thing it that the connection is made only once. If the remote server restarts, or so, I must restart visualvm too. Which is inconvenient and sometimes even more than that, because I might have other connections to other applications open too (e.g with open graphs).

A simple 'reconnect' option, which will for a certain connection simply completely rebuild it, would be handy.

What one now tends to do is close the concerning tab, and try to reopen it by clicking in the left overview of applications. But it seems to do some caching there or something, and therefore in these cases it simply doesn't work. You end up with a new tab with hardly anything useful in it. You have to completely restart visualvm, which I find myself doing sometimes dozens of times per day.

Profiling Memory with Allocation Stack Traces fails with ArrayIndexOutOfBoundsException

I'm using the latest downloadable VisualVM version: 1.3.9 (Build 161004).
The following exception occurs each time when trying to Profile Memory with settings: "Record allocations stack traces" and "Track every 10th object allocation".

Exception in thread "*** Profiler Agent Communication Thread" *** Profiler engine warning: class java.lang.Throwable$PrintStreamOrWriter loaded by *** Profiler Agent Communication Thread
*** Profiler engine warning: class java.lang.Throwable$WrappedPrintStream loaded by *** Profiler Agent Communication Thread
java.lang.ArrayIndexOutOfBoundsException
at org.netbeans.lib.profiler.server.system.Stacks.getMethodNamesForJMethodIds(Native Method)
at org.netbeans.lib.profiler.server.ProfilerInterface.getMethodNamesForJMethodIds(ProfilerInterface.java:396)
at org.netbeans.lib.profiler.server.ProfilerServer.handleClientCommand(ProfilerServer.java:1515)
at org.netbeans.lib.profiler.server.ProfilerServer.listenToClient(ProfilerServer.java:1736)
at org.netbeans.lib.profiler.server.ProfilerServer.run(ProfilerServer.java:693)

MBeans plugin doesn't repaint window

The tabs on the right side start out totally gray. I need to do something which causes this window to repaint to view its content. Resizing it or so.
Before:
screen shot 2016-10-13 at 21 29 01

After:
screen shot 2016-10-13 at 21 31 03

VisualVM 1.3.9 Mac OS X Package is malformed for a platform application

I downloaded the most recent, at least per the home page, 1.3.9, as a Mac .dmg installer. I ran it, dragged the app to the Applications icon in the installer, and it copied it over. When I tried to run it, Mac OS gave me a dialog that the application was corrupted, and I needed to install it. I had already went to edit visualvm.conf to increase the RAM as I planned to analyze a large heap immediately.

I thought things looked odd compared to a standard NB RCP/platform layout. I ran from the CLI, from bin, and it showed it could not find the clusters file. After further investigation I noticed that the platform, profiler, and visualvm directories were under Contents versus Resources.

I then copied those directories to their place under Resources, and then the app started. This is still slightly different from a standard layout which usually has a folder under the Mac app directory of the same name in my experience, but at least this is running.

Enhancement: Support renaming tabs and/or adding comments to each tab.

When profiling multiple configurations, I often find myself forgetting which tab is which run-configuration.
What I suggest is supporting renaming for the title of the tab, and/or adding a text box for comments inside each tab. This way, you can leave notes about the run.

Thanks!

wrong Vm parameters

we observed strange behaviour which caused serious issue on our site.
We configured few VMs in visualVM on Windows, we managed to connect and work with them for a long time. Recently we had to install fixpack of the products behind our VMs in visualVM.
What I did:

  1. started visualVM
  2. stopped the product (VM), installed fixpack, started the VM <-- here heap size was accidentally changed
  3. connected to the VM using visualVM (already started in the step 1)
  4. visualVM after opening VM showed old heap size which was set before step 2

This leads us into suspicion that maybe visualVM connects to all configured VMs during starting and gathers VM parameters. Does it work like that?
On our site the heap size was changed from 4GB go 2GB and caused major outage.

Thanks in advance for checking/commenting

Cannot instantiate remote class *

When I used visualvm to monitor spring application, I clicked Mbean->Operator-> My method, i receive error cannt instantiate remote class *
capture
capture2

Please help me, thank you.

HprofHeap ArrayIndexOutOfBoundsException

Ultimately the setup on a new machine was to debug this problem. This heap dump is viewable in MAT and in YourKit but VisualVM throws this exception. MAT does report overlapping array addresses but it ignores the problem and continues to complete the loading process. I was hoping to debug this problem but it drops into source code that isn't readily available.

SEVERE [org.openide.util.RequestProcessor]: Error in RequestProcessor com.sun.tools.visualvm.heapdump.impl.HeapDumpView$MasterViewSupport$1
java.lang.ArrayIndexOutOfBoundsException: -70
at org.netbeans.lib.profiler.heap.HprofHeap.fillTagBounds(HprofHeap.java:1051)
at org.netbeans.lib.profiler.heap.HprofHeap.(HprofHeap.java:133)
at org.netbeans.lib.profiler.heap.HeapFactory.createHeap(HeapFactory.java:87)
at org.netbeans.lib.profiler.heap.HeapFactory.createHeap(HeapFactory.java:69)
at org.netbeans.modules.profiler.heapwalk.HeapWalker.createHeap(HeapWalker.java:193)
at org.netbeans.modules.profiler.heapwalk.HeapWalker.(HeapWalker.java:92)
at com.sun.tools.visualvm.heapdump.impl.HeapDumpView$MasterViewSupport$1.run(HeapDumpView.java:136)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1423)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
Caused: org.openide.util.RequestProcessor$SlowItem: task failed due to
at org.openide.util.RequestProcessor.post(RequestProcessor.java:419)
at com.sun.tools.visualvm.heapdump.impl.HeapDumpView$MasterViewSupport.loadHeap(HeapDumpView.java:133)
at com.sun.tools.visualvm.heapdump.impl.HeapDumpView$MasterViewSupport.(HeapDumpView.java:110)
at com.sun.tools.visualvm.heapdump.impl.HeapDumpView.createComponent(HeapDumpView.java:70)
at com.sun.tools.visualvm.core.ui.DataSourceView.getView(DataSourceView.java:184)
at com.sun.tools.visualvm.core.ui.DataSourceWindowTabbedPane$ViewContainer.(DataSourceWindowTabbedPane.java:189)
at com.sun.tools.visualvm.core.ui.DataSourceWindow.addView(DataSourceWindow.java:75)
at com.sun.tools.visualvm.core.ui.DataSourceWindowManager$8.run(DataSourceWindowManager.java:294)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
[catch] at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Redefinition failed with error 62

Environment
Version: 1.8.0_131 (Build 1390-170114); platform 20170114-unknown-revn
System: Mac OS X (10.12.5) , x86_64 64bit
Java: 1.8.0_131; Java HotSpot(TM) 64-Bit Server VM (25.131-b11, mixed mode)
Vendor: Oracle Corporation, http://java.oracle.com/

Repro steps

  1. run application (source code blow);
  2. run JVisualVM;
  3. select application on Applications tab, then Profiler tab on the right, then press 'CPU' to start profiling.

Result
JVisualVM displays popup with error message "Redefinition failed with error 62
Check JVMTI documentation for this error code.
"

Test app source code

class perf {
public static void main(String[] args) throws InterruptedException {
for(;;) {
a();
b();
c();
}
}

static void a()throws InterruptedException{Thread.sleep(200);};
static void b()throws InterruptedException{Thread.sleep(1000);};
static void c()throws InterruptedException{Thread.sleep(2000);};

}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.