Current version: 0.51.1
jmp.deb [0.48, i386]
jmp.deb [0.42, amd64]
jmp.deb [0.48, ppc]
version 0.51.1 (2008-05-02) Made the main window ui resize nicer (toby).
version 0.51 (2006-06-05) Tried to fix compilation problems on FreeBSD,
Solaris and other systems with pthread but without
PTHREAD_MUTEX_RECURSIVE_NP. Fixed the crash that occured when
jmp was started with object tracing off and then object tracing
was enabled later on. Fixed the problem that the method window
did not show when method events were disabled.
version 0.50.2 (2006-05-12) Darryl: fixing a problem with freeze ui
causing crashes. Added missing ui_none.h (spotted by Etti).
version 0.50.1 (2006-04-01) Darryl: ENABLE_NLS isn't available under MINGW32.
Another update for java/1.4.
version 0.50 (2006-02-15) Made jmp usable on java/1.4.x again. Made jmp
compilable on gcc/2.95 again.
version 0.49 (2006-01-24) Added Darryl Miles patches: lot of file
renaming, one deadlock less, better gtk shutdown handling,
better system thread handling and a fix for better debuggability
of monitors. Also added patchset 2 from Darryl Miles: comparator
function now have reverser. Lots of code moving and file
rename. Added a gtk event system. Added view menu to toggle
class and method windows. Added preference saving and
restoring. Updated gettext version. Better handling of windows
builds (patch from Darryl).
version 0.48 (2005-10-29) Added Ians patch for OpenBSD compilation. The
string dumper did not close the dump file, spotted by Markus
Kohler. Wolfgang Baer updated the german translation and added a
man page. Made noui version compilable again.
version 0.47 (2005-05-22) Added a string dumper for the no-ui mode. Fixed
the missing column headers for the dump files. Added Ondrej's
patch to show better units in the heap graph. Added units to
class and method tables.
version 0.46 (2005-01-11) Added a right-click meny "expand" in the object
owners dialog, makes it possible to trace owners all the way to
the source. Added Yegors patch for dumping entered methods.
Added a Total object in the owned object statistics dialog. The
show object owners statistics dialog now show the instances, not
the number of links into the selected class.
version 0.45 (2004-12-01) Added Martins patch to show "time per call" in
the method window. Added tenure levels to class and instance
list. Class events are now enabled only when they need to. This
means that running with nomethods,noobjects should be faster
(until one of them is enabled). Removed some unnecessary prints
from the heap dump file. Changed the dumpfile argument to
dumpdir so both dump and heapdump files go to that directory.
Made minor adjustments to the jvm simulator and the simulator
mode of jmp.
version 0.44 (2004-10-19) Added a patch from Matze that enlarge the
temporary buffer for the method name translation. Tried to make
jmp more gtk-thread aware, thanks to Francois for testing it.
Added Luca's patch to find java-includes under hp-ux. Added
Martins patch that adds a column "alloced per call" to the
version 0.43 (2004-08-17) Added method callee graph, same features/bugs as
the normal call graph. Added the ability to group object
allocations to the filetered methods only. Minor fixes to stack
version 0.42 (2004-05-11) Added popup menues to the object owners
dialog. Made sure that the no-ui version is usable
again. Included Mikko's patch for better parsing of filter
version 0.41 (2004-03-23) Added a level so that it is possible to ask for
objects in the current reset level only. This means that show
alloced instances and string inspector have improved usability.
Added the possibility to show owners for a given string and a
given instance. Heap dump no longer throw away allocation sites
for objects if object tracing was on when the heap dump was
version 0.40 (2004-03-07) Improved the jvm simulator and used valgrind and
electric fence to fix a few memory problems. Added a dialog that
can be used to change the number of visible rows. Roland Illig
updated the german translation. Some code cleanup. String
inspector now also shows how much memory each char uses.
version 0.39 (2004-02-03) Added menu separators in some menues. Added a
string dumper that makes it easy to inspect all strings in
memory, it also has the ability to dump all strings to a file.
Fixed a bug in down link handling that caused instance numbers
to increase for arrays (thanks to matze who tried to use the
string inspector and did send back traces from crashes).
version 0.38 (2004-01-07) Changed from one filter to many filters. Added
status bars to method and class list. Some more code cleanup.
Major rewrite of filterconfig to handle multiple filters. Added
a window that shows owner statistics (java.lang.String is owned
by 23 Class, 12 Hashtable$Entry...).
version 0.37 (2003-12-09) Fixed the freeze-button to show different texts
depending on mode. Added missing sort for variable name in
object dump window. Added owned objects statistics, a window
that shows how many objects are reachable from a given object.
version 0.36 (2003-10-23) Added monitor dump parsing and a window that
shows the current monitors, including the threads that wait to
enter or wait for notify. Code cleanup. Commented the code some
more. Added a semi-automatic deadlock detector.
version 0.35 (2003-09-23) Fixed a bug that caused crashes at shutdown
if no object tracing had been done. Fixed a problem where some
method exits got negative time diffs, which could cause some
methods to have taken _very_ long. Some code cleanup. Removed
some locking of timerstacks giving a good performance
boost. Fixed a hang on exit when the nogui option is used.
version 0.34 (2003-09-02) Fixed some bugs that caused crashes during
shutdown and file dumping. A problem with displaying strings
outside of ASCII was fixed.
version 0.33 (2003-08-14) Added a heap size indicator in the heap
graph. Added text fields to show the heap size, current usage
and filtered usage. When an instance is inspected the node is
now auto expanded.
version 0.32 (2003-07-10) Added a bootstrap script. Made it possible to
expand Object and char. Merged a patch by Andy Farlie to
make it possible to compile with gtk+/2.0 again.
version 0.31 (2003-06-24) Added a heap total and filtered total usage row
to the dump files. Added a class info dialog that displays all
the variables (both instance and static) in the class. Each
instance in the instance list can now be expanded to show object
instances owned by a specific object.
version 0.30 (2003-05-20) Updated the dialog for allocated instances, it
now show the arena name if known. Updated timerstack to hold the
object id for the object the method is waiting for (either
normal wait or contention). Updated thread window to show the
object the selected thread is waiting on. Removed some
synchronization from object_alloc. Fixed a deadlock that could
cause the UI thread to hang if the thread window was open. Fixed
some minor memory leaks (some objects were not released on
exit). Added a jvm simulator that can be used to profile/debug
jmp. Minor update to configure for freeBSD. Enabling method
events on startup no longer causes jmp to try to get the stacks
(since that crashes some jvms). Heap dump and enable/disable of
object events does not increase the GC-count anymore.
version 0.29 (2003-04-09) Fixed a problem where some objects were not
counted correctly after a heap dump. Fixed a problem where
method_exit could get a NULL method and crash jmp. Reenabled the
code that asks the jvm for a method when method_entry can not
find it which happens when class was loaded before jvmpi was
started. Added some useful methods to the java API. Updated
Makefile to hold targets for the java parts. Wrote javadoc for
the java parts.
version 0.28 (2003-03-19) Removed some unneeded includes. Added help and
status text to the instance owner dialog. Made instance owner
show no more than 100 top level objects (tree gets very large
otherwise). Changed time strings to have only 6 decimals.
Changed color (from grey to green) for the filtered set in the
heap graph. Changed to vertical pane in threads window, which
puts the stack trace table under the thread list. Remove all
objects before a heap dump is parsed which fixes a problem where
objects were counted multiple times. The code to show instance
owners now tries to request unknown objects and classes and thus
shows more information.
version 0.27 (2003-02-15) Fixed a problem where an early method_exit
caused jmp to crash. Minor fixes for FreeBSD compilation from
Ronald. Updated german localization. Merged a patch from Bodo
that adds thread status and thread total time to the threads
window and also has a bug fix for monitor contenation handling.
version 0.26 (2003-01-12) Merged a patch from Bodo: add two columns
to method, the columns are number of alloced objects in method
and number of alloced bytes in method. Simplification and
speedup of contenation handling. The time function is now
selected at startup depending on jvm vendor and version since
GetCurrentThreadCpuTime has a bug in SUN's jvm, not in IBM's,
absolute timing under linux uses some special code for better
accuracy. Merged patch from Chris Hane to compile under
windows. Merged a patch from Bodo to speed up timerstack
locking/unlocking (by removing most of the calls since they are
not needed). Merged a patch from Ronald Klop: Include
sys/types.h in heap_dump.c if it exists to compile under
FreeBSD and changed name of jmp's hash_* to jmphash_* to avoid
clashes with hash functions in libc (on *BSD and other unixes).
version 0.25 (2003-01-01) Added a target "install-to-java" to installing
jmp into the jdk, which makes it possible to run jmp without
setting the LD_LIBRARY_PATH. Corrected email adressess in
AUTHORS and other files. Heap dumps now tries to get object
allocations when it gets instances that are unknown. Added a
filter flag to struct cls, which means that we only filter on
class_load and set_filter instead of each ui-loop. Made the
numeric colums be right aligned. Updated list view
handling. Added a heap size graph. Updated the UI code to be
much faster. Updated TODO file.
version 0.24 (2002-12-17) Many changes by robo, Marco and Bodo. Code
cleanup and performance: Removed a lot of gtk_widget_show since
gtk_widget_show_all is used. Removed the unused struct timeval
and calls to gettimeofday from method_entry and method_exit
handling. A method pointer is now stored in the timerstack and
the timerstacks are only locked if thread window is open this
speeds up the method_entry and method_exit handling. Initial
framework to enable and disable method and object events at
runtime, making it possible to run with jmp with almost no
performance hit until profiling is needed and enabled. Added
code to handle stack cleanup after stack underflow or after
method profiling has been enabled.
version 0.23 (2002-12-09) Big patch from Marco Walther: the patch puts a
monitor in each hash table and timerstack and uses that monitor
to synchronize access to the hash tables, this makes crashes
quite rare even when profiling method calls. Minor fixes in
object owners to handle the case where objects have been garbage
version 0.22 (2002-11-16) Fixed a compile problem when building with
--disable-nls. Add forgotten file close in no-ui.c. Added more
garbage collection statistics. Added a jmp.dll target for thoose
who want to run jmp under windows. Changed time fields to hold
jlong with nanoseconds instead of struct timeval, this gives
better portability and cleaner code. Splitted out filter and
filter dialog to get filter even in noui-mode.
version 0.21 (2002-09-16) Fixed so that it should be possible to run with
"nogui" (when run with DISPLAY unset). Restructured code a lot
to enable the --enable-noui when configuring which gives a
libjmp that does not need gtk (only useful with dumptimer=3600
or options like that). A side effect of --enable-noui is that it
should now be easy to add other user interfaces with other
toolkits like windows/qt/mac. Added some statistics after
Version 0.20 (2002-08-15) Updated the gui to use GTK+/2.0 instead of the
GTK+/1.2. Updates to configure script to handle gtk-change. Some
large files were splitted. Some code reorganisation.
version 0.18 (2002-06-22) Made the thread status window update on the same
timer as the other status windows. Fixed a problem with early
monitor events (crash upon starting).Fixed a problem with early
method exits and uninitilized stack (crash upon starting).
Disabling monitor profiling at shut down solved one crash at
exit. Minor UI updates on the thread status window.
version 0.17 (2002-06-04) Removed the updater thread and moved its duties
into gtk-timeouts instead. Made the UI more responsive during
heap dumps. Restructured initialization a little bit. Minor UI
tweaks. Added contenation info to the threads window. Added
sorting to the threads window.
version 0.16 (2002-05-20) Made it more thread safe by removing static
method variables. Added a window that shows the current threads
togheter with the stack for the selected thread. Made the ui
updating a bit faster. UI tweaks. Updated swedish translation.
version 0.15 (2002-04-24) Merged in patches from Bodo Pfelzer: hash tables
now store a list of free elements so they do not have to call
malloc in move object (forbidden according to jvmpi spec). Added
status texts to get more information (Bodo). Updated german
translation (Bodo). Added some more comments in the code.
Modified the method struct to handle class moves during
GC. Minor ui updates.
version 0.14 (2002-04-13) Some more memory handling. Object owners show a
tree of the owners in a new window. Disable events at shutdown
means less crashes on exit due to half freed structures. Menu
entry for show instance owners are only possible when a heap
dump has been done.
version 0.13 (2002-03-29) Fixed the total count field, it should now hold
correct values and always be showing. Cleaned up some memory
allocations. Removed some unused code. Updated configure to
handle that JAVA_HOME points to IBM's sdk (include files are
located somewhat different). Added filter options on the class
lists and method lists right click menu. Added tracing in a few
important places. Started heap dump handling. Handle object_move
for classes. Initial owner lists for objects. Changed objects
internal represantation slightly to speed up GC with class
version 0.12 (2002-01-26) Added Bodo Pfelzer's i18n patch. Added german
l10n (also Bodo), Added swedish l10n (me). Added a patch to
avoid deadlock when garbage collection was requested with the
[GC]-button (Bernd Petersohn). Added initial help text (java
-Xrunjmp:help). Added a dump on timer mode (available with
-Xrunjmp:dumptimer=). Splitted out some function from long
files. Added sorting to object table.
version 0.11 (2002-01-10) Added Bodo Pfelzer's patch for filtering shown
objects and methods. Added a column to show a methods total time
(own + methods called). Updated configure script to look after
java as specified in the JAVA_HOME environment variable (Bodo +
version 0.10 (2002-01-01) Added the ability to show live objects alloced
by a method. Added the ability to show all live objects of a
certain class. Added initial sizes to windows. Removed some debug
info. Renamed test programs to jmp_. Added a TODO file
to the project. Added a first draft of a method call graph.
version 0.9 (2001-12-23) Added Erik Agsjö's patch to dump thread status,
modified it to get full stack traces. Changed the updates of the
tables to use update instead of clear and append, thanks to Bodo
Pfelzer. Translated the jvm's method/field signatures to human
version 0.8 (2001-12-11) Added the possibility to restore the counters to
real values. Added the quit-ui and check_quit (on timer) to be
able to get gtk_main-thread to call gtk_quit () hopefully this
should make jmp and IBM's jvm work better together. Added the
possibility to freeze the ui updates.
version 0.7 (2001-11-24) Fixed the broken objectstore to use a version
from Bodo Pfelzer (slightly modified to alloc in chunks)
instead. Added a button to reset the counters (calls, times,
instances) to zero which is useful for profiling a specific
version 0.6 (2001-11-13)
Dump results on exit. Dump on request is available. Added the
possibility to sort columns by clicking on a header. Only shows
the windows that need to be open. Only updates the windows that
are showing. Added a window with some buttons to dump data and
request a garbage collect. Added an about dialog. Dump files are
named sequentially so you can diff them.
version 0.5 (2001-11-05)
Speed improvements. Method exit should not lock in the normal case
anymore. The crash on exit should not happen anymore. Added the
possibility to trace jmp (compile with CFLAGS='-DJMPDEBUG').
version 0.4 (2001-10-13)
Major Speed improvements. Method entry does not lock
anymore. Fixed the problems with classes where we get no source
version 0.3 (2001-10-02)
Made the gtk-ui thread aware so this should mean no more "async
Xlib reply". Fixed some memory problem bugs.
version 0.2 (2001-09-28)
Many changes. Sorted the object table based on bytes used. Make
the object table keep its visible set of rows. Added thread and
method tracing. Added a generic stack (used for method tracing).
version 0.1 (2001-08-xx)
No changes yet.