Exmap does not build on current systems and should be considered obsolete. The code is still available on github.
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'
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.
Fix 0.6 bug: ELF segment mapping issue on Fedora Core 4
Split user and kernel makefiles to allow -fPIC for userspace tools.
Added 'Sole Mapped size' (and doc to website).
Fix 0.6 bug: "Can't call ->isfilebacked" 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.
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 pagetablelock 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.
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.
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
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.