| Frequently Asked Questions VisiVue
What is software visualization?
How do I set properties for VisiVue?
Can I set VisiVue properties from the JVM options in the launcher window?
What are useful properties I can set in the "visivue.properties" file?
How do I get tracetext for my program under observation?
How can I send tracetext to a text file instead of the console?
The output for tracetext is volumous. How can I get tracetext for only the portion of my program that I am interested in?
I want to run VisiVue from a ".BAT" file. How do I do that?
Does VisiVue work on applications, applets, servelets?
The processing of classes before the visualization is very slow. Does it need to do that every time?
The visualization of my application is slow. How can I speed it up?
I do not want to see the system classes. Can I limit visicomp to my classes?
VisiVue seems to start up, but then nothing happens. What's wrong?
The visualization window appears and my application runs, but nothing appears in the visualization window. What's wrong?
The installation window is too small when installing VisiVue under KDE
Does VisiVue work with jdk1.4?
What is Software Visualization?
Software visualization is the ability to see inside a computer program. In its broadest sense, the term can include the perusing of source code or static class hierarchy diagrams; however, the term generally is used to refer to the dynamic rendering of the inner workings of a program, illustrating its runtime characteristics, attributes and values while it is executing. By conveying runtime information to the observer, a software visualization tool is invaluable for debugging, verification, validation/testing, comprehension of legacy code, and as an educational tool. Unlike static design tools and class browsers that provide hints about the structure of a program, a dynamic software visualization tool shows the user what the program actually does. For the first time, developers can actually see how their program runs instead of having to guess how it will work. Top
How do I set properties for VisiVue?
Properties for the program under observation can be set in the VisiVue launcher window ("-DpropertyName=propertyValue" specifiers in the "JVM Options" text field [see next FAQ]), or in a properties file. When the program under observation starts up under VisiVue, properties are loaded from the following files, in the following order: ${visicomp.home}/visivue.properties ${user.home}/visivue.properties ${user.dir}/visivue.properties The ${visicomp.home} notation corresponds to the directory containing the VisiVue.jar file; the other directories are defined by properties created by your JVM. The order is significant; a property defined in a later file can override an earlier property definition. If one or more of these property files do not exist, it is not an error. Top
Can I set VisiVue properties from the JVM options in the launcher window?
You can set VisiVue properties (such as visicomp.verbose=true) both from the visivue.properties file and from the JVM options in the VisiVue launcher. However, keep in mind the difference between these two variations. Setting VisiVue properties from the Launcher sets VisiVue properties for the visualization portion only, since the instance of the JVM for the launcher is already running. This would be useful to obtain error output for visualization only. However, if you need pre-visualization error output (such as "what are the initial arguments passed into VisiVue?"), you must set the diagnostic properties in the visivue.properties file so that each instance of the JVM is running with that property set. Top
What are useful properties I can set in the "visivue.properties" file?
One very handy property definition is:
visicomp.properties.files.verbose=true If this boolean property is true, then VisiVue prints out which properties files are found and loaded. For even more detailed information about where property definitions are coming from, try:
visicomp.properties.sources.verbose=true For some useful basic computing environment information try:
visicomp.verbose=true This a good way to get diagnostic information in preparation for technical support. The most powerful property setting is the property that turns on tracetext. See the next FAQ. Top
How do I get tracetext for my program under observation?
The property visicomp.tracetext.operations is used to specify the set of operations to be displayed as tracetext. The value of this property should be composed of one or more of the following, separated by commas:
threads methods returns catches fields staticFields objectFields arrayElements locals refs nonlocalRefs staticRefs all
For example, to observe the flow of control between methods, try:
visicomp.tracetext.operations=methods,catches
To see only assignments to static reference variables, you can use: visicomp.tracetext.operations=staticRefs
If you want to see everything (and you have plenty of disk space), try: visicomp.tracetext.operations=all Top
How can I send tracetext to a text file instead of the console?
To specify where tracetext output should go, specify a filename like:
visicomp.tracetext.outputFilename=trace.txt
By default, tracetext goes to the console. If you want to ensure that you get the last little bit of output, try:
visicomp.tracetext.buffered=false
Keep in mind that unbuffered output is much slower than the buffered default behavior. Top
The output for tracetext is volumous. How can I get tracetext for only the portion of my program that I am interested in?
You can turn tracetext on and off dynamically (if you have source code for the program under observation) by calling the following method from your program:
public static boolean com.visicomp.VisiVue.setTextDisplayEnabled(boolean enabled)
The single argument specifies whether tracetext should be turned on (true) or off (false). The returned value is the previous state.
You can also obtain the current state by calling:
public static boolean com.visicomp.VisiVue.getTextDisplayEnabled()
By default, tracetext is initially enabled (subject to the operations specification described above). If you want tracetext initially to be disabled, set this boolean property as follows:
visicomp.tracetext.initiallyEnabled=false
You can then control the enabled state with the above methods. Top
I want to run VisiVue from a ".BAT" file. How do I do that?
The VISIVUE.BAT is included with the .Zip download of VisiVue to provide a convenient alternative to the Windows command line. Once the .BAT file is edited properly, VisiVue will launch by double clicking the .BAT file icon, or by dragging and dropping the .JAR or .HTM file for your application or applet on top of the .BAT file icon.
First you must comment out the statements echoing a message regarding editing of the bat file. This can be done easily by just cutting them out or adding REM statements to the front of each line, including the line with the EXIT command.
The BAT file performs it's duties in two different steps:
1) The assignment of named parameters to reflect the locations of Java and VisiComp components
2) The execution of the launch command.
Step 1)
The VISIVUE.BAT file must be edited to reflect the directory names and locations of the Java, Swing, and VisiVue files on your local system as follows:
if "%JAVA_HOME%" == "" set JAVA_HOME=C:\jdk1.1.8
if "%SWING_HOME%" == "" set SWING_HOME=C:\Swing-1.1.1
if "%VISIVUE_HOME%" == "" set VISIVUE_HOME=C:\visicomp
Step 2)
Once the named parameters reflect the proper directories, the VisiVue launch command for jdk1.1 is:
%JAVA_HOME%\bin\java -classpath
%JAVA_HOME%\lib\classes.zip;%SWING_HOME%\swingall.jar; %VISIVUE_HOME%\VisiVue.jar com.visicomp.VisiComp %1 %2 %3 %4 %5 %6 %7 %8 %9
However, if you're running jdk1.2 (Java2) or later, the -classpath argument does not need to specify the classes.zip or swingall.jar locations. Thus, the VisiVue launch command for jdk1.2 is:
%JAVA_HOME%\bin\java -classpath %VISIVUE_HOME%\VisiVue.jar
com.visicomp.VisiComp %1 %2 %3 %4 %5 %6 %7 %8 %9
Note Comment out which ever of the two launch commands that you are not using (jdk1.1 or jdk1.2, but not both). Top
Does VisiVue work on applications, applets, servlets?
At this time VisiVue can visualize applications, applets, and servlets written Java. Top
The processing of classes before the visualization is very slow. Does it need to perform that process each time?
VisiVue will augment any unique class it encounters. This includes system classes. Therefore, the first time you run your program under VisiVue, it will require some time to include the system classes. If you change JDKs it must perform the same operation to them as well. However, any class VisiVue has encountered before and which has not since been altered, would not be augmented again. The next time VisiVue runs the same program with the same JDK, the visualization window should come up much sooner. Top
The visualization of my application is slow. How can I speed it up?
See the answer to the next FAQ. Top
I do not want to see the system classes. Can I limit VisiVue to my classes?
There are actually two possible answers to this question.
The easy answer is to direct you to the filter panel. There you can choose the classes you want VisiVue to display in the visualization window by selecting them in the list.
But if you want to increase the overall performance of the visualization, you may limit augmentation of certain classes by selecting and removing them from the classpath list, which is the bottom field in the classpath panel. The system classes are good targets for this approach. Specific to your question, you can remove any classpath container in the list which does not contain your classes. This limits what VisiVue augments and, therefore, what it will visualize. It also lightens the work VisiVue must do, so you get a bit of a performance boost in the deal. Top
VisiVue seems to start up, but then nothing happens. What's wrong?
The program may have run out of memory. Try allocating more memory to the program under observation by entering something like the following command in the JVM options field in the launch window:
-mx100m
The above example will allocate 100 MB of available memory to the application and the VisiVue visualization. Adjust the actual amount according to your program's needs and your system's actual available memory. Make sure the amount you set is actually physically available since virtual memory usage may slow things down. Top
The visualization window appears and my application runs, but nothing appears in the visualization window. What's wrong?
Several oversights can result in an empty visualization window. Here are some basic things to check:
If your application under test is an applet:
1. Do you have the correct path to the .html index for your applet included in the HTML file field? Use the browser to make sure.
2. Does your applet require any arguments normally supplied by the command line? Enter them in the JVM options field.
If your application is an application with a main method:
1. Does the fully qualified class containing the main method appear in the application field?
2. Does your application require any arguments to be passed to it, such as a file or folder of some sort? If so, is it included in your arguments field?
3. As above, does your application require any arguments normally supplied by the command line? Enter them in the JVM options field. In either case:
In the Classpath panel, make sure all the classes required to run your program are included in the classpath list window in the lower portion of the panel.
In the filter panel, make sure all the classes you are interested in visualizing are checked. Top
The installation window is too small when installing VisiVue under KDE
The easiest thing to do about this is to simply download the .zip version of the VisiVue evaluation, since we're only seeing this problem in KDE when the InstallAnywhere .bin file is used to install VisiVue.
You could also switch to the Gnome window manager, which doesn't exhibit the problem during installation. After installation you can switch back to KDE.
Or, you could install the latest version of KDE, which I believe is KDE 2.2.1. Updating KDE seems to eliminate the problem. Top
Does VisiVue work with jdk1.4?
VisiVue does not work with jdk1.4 at this time. |