*J Home

Introduction

News

Documentation

Download

History of Changes

Related Projects

Sable Home

McGill

*J: A Tool for Dynamic Analysis of Java Programs

Last updated: June 04, 2004
Sable

*J is a toolkit which serves two primary purposes:

  • To facilitate the collection of dynamic execution data for Java programs
  • To provide a framework for implementing analyses of this collected data quickly and easily

These two main goals are accomplished through the use of two separate tools:

  • The *J profiling agent collects event trace data from a Java program running in a Java Virtual Machine (JVM) which implements the Java Virtual Machine Profiler Interface (JVMPI)
  • The *J trace analyzer framework reads and analyzes the traces produced by the agent, using either a built-in analyses or custom ones.

*J is free software and is licensed under the GNU Lesser General Public License




News


Back to Top



Documentation


Installation and Tutorials

> Installation instructions: [PDF]


Back to Top



Download

The latest release of *J is 0.1-beta8.

Current Version
0.1-beta8
This is the complete release of *J, and bundles the source plus pre-compiled binaries. This is the easiest way to install *J. > starj-0.1-beta8.tar.gz
This is the source release of *J. It is the minimal release of *J. > starj-0.1-beta8-src.tar.gz
Previous Versions
0.1-beta7
This is the complete release of *J, and bundles the source plus pre-compiled binaries. This is the easiest way to install *J. > starj-0.1-beta7.tar.gz
This is the source release of *J. It is the minimal release of *J. > starj-0.1-beta7-src.tar.gz
0.1-beta6
This is the complete release of *J, and bundles the source plus pre-compiled binaries. This is the easiest way to install *J. > starj-0.1-beta6.tar.gz
This is the source release of *J. It is the minimal release of *J. > starj-0.1-beta6-src.tar.gz
0.1-beta5
This is the complete release of *J, and bundles the source plus pre-compiled binaries. This is the easiest way to install *J. > starj-0.1-beta5.tar.gz
This is the source release of *J. It is the minimal release of *J. > starj-0.1-beta5-src.tar.gz
0.1-beta4
This is the complete release of *J, and bundles the source plus pre-compiled binaries. This is the easiest way to install *J. > starj-0.1-beta4.tar.gz
This is the source release of *J. It is the minimal release of *J. > starj-0.1-beta4-src.tar.gz
0.1-beta3
This is the complete release of *J, and bundles the source plus pre-compiled binaries. This is the easiest way to install *J. > starj-0.1-beta3.tar.gz
This is the source release of *J. It is the minimal release of *J. > starj-0.1-beta3-src.tar.gz
0.1-beta2
This is the complete release of *J, and bundles the source plus pre-compiled binaries. This is the easiest way to install *J. > starj-0.1-beta2.tar.gz
This is the source release of *J. It is the minimal release of *J. > starj-0.1-beta2-src.tar.gz
0.1-beta1
This is the complete release of *J, and bundles the source plus pre-compiled binaries. This is the easiest way to install *J. > starj-0.1-beta1.tar.gz
This is the source release of *J. It is the minimal release of *J. > starj-0.1-beta1-src.tar.gz


Back to Top



History of Changes

Version 0.1-beta7 to 0.1-beta8

  • New features:
    1. Added CallGraphPrinter class.
    2. Added ContentionPrinter class.
    3. Added specification extractor.
    4. Added CallStackManager operation.
  • Improvements:
    1. Added field dependency handling in specification compiler.
  • Bug fixes:
    1. Made option processing fail when a pattern does not match any element.
    2. Fixed some problems in propagation framework.
    3. Fixed problem with metric ouput format.
    4. Fixed synchronization metrics to correctly handle synchronized methods.
    5. Other minor bug fixes

Version 0.1-beta6 to 0.1-beta7

  • Bug fixes:
    1. Fixed StackOverflowException when calling ClassFile.isImplementationOf.
    2. Fixed wrong ID problem for ArenaNew events.
    3. Fixed potential NullPointerException in CallSiteResolver.

Version 0.1-beta5 to 0.1-beta6

  • Bug fixes:
    1. Fixed memory leak involving ObjectEntity instances being referenced by ArenaEntity instances, preventing their collection.

Version 0.1-beta4 to 0.1-beta5

  • New features:
    1. Added trace validator
  • Improvements:
    1. Reduced memory overhead
    2. Improved speed when using compressed traces
  • Bug fixes:
    1. Fixed NullPointerException in AspectJ-related metrics when an unresolved class was encountered

Version 0.1-beta3 to 0.1-beta4

  • Bug fixes:
    1. Fixed segmentation fault when splitting trace files

Version 0.1-beta2 to 0.1-beta3

  • New features:
    1. Added element help via --element-help option
    2. Added printer stream configuration and header size configuration from command line
  • Bug fixes:
    1. Fixed file format bug in specification compiler

Version 0.1-beta1 to 0.1-beta2

  • Bug fixes:
    1. Fixed compilation problem in agent
    2. Fixed error in analyzer which prevented proceed method tags from being read.

Version 0.1-beta1

  • Initial public release


Back to Top



Related Projects


EVolve

EVolve is a system for visualizing trace data in a variety of ways.

More information is available at http://www.sable.mcgill.ca/evolve/.


Dynamic Software Metrics

In order to perform meaningful experiments in optimizing compilation and run-time system design it is beneficial to quantify the behavior of programs with a concise and precisely defined set of dynamic software metrics.

More information is available at http://www.sable.mcgill.ca/metrics/.


STEP

STEP is a system for encoding and compressing program traces in a flexible format.

More information is available at http://www.sable.mcgill.ca/step/.


Back to Top




Maintained by Bruno Dufour