Troubleshooting

Problem: Whenever I attempt to launch a new debug process from within BugSeeker it fails to start and the message Unable to start debug session : project's JVM options incorrect or classic VM not found (try enabling Debug with HotSpot option) is displayed.

Solution: You are most likely running BugSeeker using Windows Java SDK 1.3 and you are using the java.exe found in the C:\Windows directory or equivalent and this java.exe uses the VM engines installed with the Java Runtime Environment (JRE) installed in the Program Files/Javasoft/1.3 directory which does not include the classic VM by default. You will need to copy the jdk1.3/jre/bin/classic subdirectory and all its contents to the JRE location specified above. BugSeeker by default uses the classic JVM when debugging applications launched from the debugger itself and because the classic JVM is not present your program is unable to start. Alternatively, you may go to the project property's Advanced tab and enable Debug with HotSpot option which tells BugSeeker to debug using the HotSpot VM however this is much slower than using the classic VM for debugging.

 


Problem: I get the following error message whenever I try to launch my remote process using JPDA options:

Can't load "jdwp.dll", because One of the library files needed to run this application cannot be found
Could not create the Java virtual machine
.

Solution: If you get this error message, it means that the JPDA bin/ or JDK1.3/bin directory is not in your PATH which needs to be there so that it can locate the jdwp.dll file.

 


Problem: I'm trying to launch my process in server mode using java -classic -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmem,address=javadebug,suspend=n MainClass so that I can attach BugSeeker to the connection address I specified on the command-line however I get the following error message:
Error accessing shared memory, rc = -1
Transport dt_shmem failed to initialize, rc = -1.
FATAL ERROR in native method: No transports initialized
abnormal program termination

Solution: because you did not supply the server=y JPDA suboption in the -Xrunjdwp option string, the remote process you started will run in client mode (server=n by default) and because BugSeeker is not listening at the specified shared memory address, the error message you see is displayed. You will also get this error message if BugSeeker is not listening at this address or if BugSeeker is not running on the same machine as the remote process you are trying to start (limitation of using shared memory transport type).

 


Problem: I'm trying to start my remote process using the following JVM options java -classic -Xdebug -Xnoagent -Xrunjwdp...MainClass however the VM simply crashes once I executed this command.

Solution: you forgot to supply the -Djava.compiler=NONE option which is required if you are using the classic VM.

 


Problem: I'm trying to start my remote process using java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmen,address=superman MainClass however I keep getting this error message:
Transport dt_shmen failed to initialize, rc = 509.
FATAL ERROR in native method: No transports initialized
abnormal program termination

Solution: you mistyped the transport name. It should be dt_shmem. This error message is displayed anytime you specify a transport type that is not recognized. If you are sure you entered the name dt_shmem correctly and you are still getting this error message, it is likely dt_shmem transport type is not available on your platform.

 


Problem: I'm trying to start connect my remote process using the socket transport type using java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmen,address=superman MainClass
however I keep getting this error message:
Transport dt_shmen failed to initialize, rc = 509.
FATAL ERROR in native method: No transports initialized
abnormal program termination

Solution: you mistyped the transport name. It should be dt_shmem. This error message is displayed anytime you specify a transport type that is not recognized. If you are sure you entered the name dt_shmem correctly and you are still getting this error message, it is likely dt_shmem transport type is not available on your platform.

 


Problem: I'm trying to start connect my remote process using the socket transport type using java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9000,server=n MainClass however I get the following error message:
Error [2] in connect() call!
err:: No such file or directory
Socket transport failed to init.
Transport dt_socket failed to initialize, rc = -1.
FATAL ERROR in native method: No transports initialized

Solution: The above error message is generated because BugSeeker it not currently listening for incoming connections on that port number. You may need to verify the port number you entered or perhaps supply the hostname to use in the address suboption (address=myhostname:9000).

 


Problem: whenever I start remote debug process I get the following non-fatal warning message
Java HotSpot(TM) Client VM warning: Setting of property "java.compiler" is ignored

Solution: you are using the HotSpot engine to debug in which case you do not need to supply the -Djava.compiler=NONE JVM option which is only necessary if you are using the classic VM. However, we strongly recommend that you supply the -classic option to disable HotSpot because debugging using HotSpot is an order of a magnitude slower than debugging using the classic VM. Note if you do use the -classic VM option, it must be the first option you supply.