Release 0.10: 28/9/2006
Allow loading symbols from .dynsym ELF section if no .symtab is present. This allows symbol information from most system shared libraries to be viewed, rather than just those you've built yourself.
Fix bug correlating with some prelinked binaries on gentoo (triggered by a 4-vma covering of an ELF binary due to having both .bss and .gnu.conflict both > 1 page.
Disable listbox sorting when doing a mass insert to reduce CPU burn when selecting an ELF section with many symbols.
Minor UI improvements, resizeability, better update text when deselecting items, some shortcut keys, about box etc.
You can 'make exmtool' in the src/ subdir and build the command line tool without the Makefile trying to pick up the gtk libs and include files.
The 'file' view now allows you to look at the ELF section usage across all processes which map the file (selected via a checkbox).
Release 0.9: 9/6/2006
Port C++ code to amd64. Thanks to Ross K and Samuel M for testing and packaging help. Exmap now should work on 64-bit platforms, please let me know if you have any problems.
Release 0.8.4: 23/5/2006
Use getpagesize() rather than sys/user.h, for portability.
Release 0.8.3: 22/5/2006
Try harder to fix debian bug.
Release 0.8.2: 22/5/2006
#include <sys/user.h> for PAGE_SIZE to try to fix debian bug #360992.
Release 0.8.1: 22/3/2006
Updated kernel module to allow building on earlier kernels. Works back to at least 2.6.8 now, probably earlier too.
Fix bug on prelinked systems when ELF files have three loadable segments.
Add additional Gtk::VPane to allow rearrangement of UI.
Run-time debugging is back, by setting environment var JUTIL_STREAM_DEBUG=1. This is fairly voluminous.
More (and hopefully more reliable) tests.
Release 0.8: 12/1/2006
Big change: the perl userspace code is now deprecated as the main app has rewritten in C++/gtkmm, as 'gexmap'. Has most of the functionality of the perl version, but is missing 64-bit support and config file support.
The perl version is still available in the subdir 'perl-deprecated'
Release 0.7.1: 6/12/2005
Reduce general memory consumption by lazily loading ELF segments and symbols.
Release 0.7: 5/12/2005
Improve performance issue when loading large lists of symbols (e.g. .text in libgtk-x11). Now takes about 10secs instead of an hour.
Suppress "Can't load info for pid XXX" messages when running as root. Tasks without a VM (e.g. [kwsapd]) are now ignored.
Added 'Writable' size, for pages which are writable by the process. See the docs for more info.
Added initial config file support. Not fixed or documented, but if you create an empty ~/.exmaprc file and run exmap, it will save the default settings for you to edit. Basically this allows you to select which columns are shown in which lists. Its a bit clunky at the moment and the format may well change.
Release 0.6.2: 30/11/2005
Fix 0.6 bug: ELF segment mapping issue on Fedora Core 4
Split user and kernel makefiles to allow -fPIC for userspace tools.
Release 0.6.1: 29/11/2005
Added 'Sole Mapped size' (and doc to website).
Fix 0.6 bug: "Can't call ->is_file_backed" on an undefined value.
Fix 0.6 bug: 'Files' tab view always showing zero procs.
Fix 0.6 bug: sort order broken in locale's with non-. numeric seperators.
Release 0.6: 28/11/2005
Swap space accounting. Instead of just looking at physical RAM usage, Exmap now also looks at swapped out pages. Again, sharing is taken into account.
Put under GPL.
Renamed 'mapped size' to 'resident size'. Renamed 'effective size' to 'effective resident size'. Added new measures 'mapped' and 'effective mapped', which correspond to resident+swap. See the documentation for full details. Sorry for the confusion.
Changed kernel module to not hold any page_table_lock when calling vmalloc. Hopefully removes the deadlock when running exmap under memory pressure.
When running as root, setuid to the owner uid of a file before attempting to open it. This avoids problems with files mmap'd over NFS with root (s)quash.
(Finally) cut the precision to 2 dec places from 6 in the UI.
Honour the EXMAP_DEBUG environment variable. Setting to a non-zero value causes voluminous debug output.
Internally, cut away all the mapped/effective/vm methods and pass around a 'Sizes' object containing all measures.
map calculator re-write. Some odd corner cases in the ELF->memory mapping have hopefully been cleared up. This will hopefully avoid some problems on FC4.
Release 0.5.2: 14/11/2005
add meaningful "not selected" messages to the various lists
On 64-bit systems, perl warned that converting hex->dec for a value greater than 2^32 is non-portable. Simply disable the warnings for now, but is this valid?
some performance work. Startup/shutdown down to approx 13.3s from 24s on my system.
truncate command line to first one or two args (including the second only if it begins with a [), to give better KDE behaviour) to avoid long cmdline messing UI.
Website work, including FAQ.
Release 0.5.1: 4/11/2005
pre-sort lists by effective size (descending)
add 'cmdline' column for KDE (the have kdeinit as the exe for all procs)
don't strip out [vdso], it seems to cause problems on Fedora and amd64
fix -Wall errors for userland .c files
Release 0.5: 4/11/2005
Significant rewrite. Rather than expose the VMAs within a process in the 'Process' API, an intermediate layer of 'maps' is used. This was done to provide an interface with better than page granularity for examining ranges (needed for examining ELF sections and symbols easily).
Added (seems to be working) list of ELF sections and symbols. If the file you are examining is an ELF file, you'll see the different ELF sections listed. If the file is an *unstripped* ELF file, you can also select an ELF section and examine the ELF symbols (functions, global data) within that section.
ELF symbols are now listed to byte granularity.