Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Dec 9, 2013
  1. Reduce cpu contention in loading code.

    Previously we'd use a thread pool to spool off memory state update tasks.
    Now, just update the state immediately. Combine updates to the state and
    zoom state to eliminate duplicate decoding logic and improve memory
  2. Type compatibility fixes.

    Add a test to verify display of extreme addresses (~0ull). There are still
    issues if ignorebits is 0, but things should be mostly working for the
    default of 2.
  3. Add full 64-bit address support to the backends.

    This change allocates a full 64-bit entry in the IPC structure, and adds a
    new 32-bit quantity to encode the type and size - eliminating the packed
    40-bit optimization that only applies when we know that the 64-bit
    addresses lie within these 40 bits. This change should correct Pin memory
    address traces.
Commits on Dec 8, 2013
  1. Allow more than 36 bits of address space.

    For Pin, it's impossible to directly limit the number of bits of address
    space that will be used by the program. So we need a way in MemoryState to
    represent the full 64 bits of address space without actually mapping all 64
    bits of memory (which is impossible with mmap). To do this, add a linked
    list of SparseArray objects that maps from the top set of bits to a
    SparseArray. The StateArray stored in the link is the same as previous.
    Update iterators and pages to correctly report addresses when using the
    linked list.
    This change slows down updateAddress() by roughly 25% for the test
Commits on Nov 25, 2013
Commits on Nov 24, 2013
  1. Add experimental pintool support.

    This revision also moves mv_ipc.h to the root directory so that it's
    accessible to both the pin and valgrind backends.
Commits on May 12, 2013
  1. Automate the tool build process.

    This change extends the valgrind/Makefile to include downloading, patching,
    and building the valgrind tool.  Additionally, it's no longer necessary to
    install the valgrind tool since we can use VALGRIND_LIB to look for the
    tool in the source tree if the memview binary is not installed.
  2. Add a slider to control the batch size.

    This change adds a toolbar with a slider to directly set the number of
    events per batch, which controls the frequency of stack trace samples.
Commits on Apr 14, 2013
Commits on Apr 13, 2013
  1. Use tokens to specify maximum block size.

    Use dynamic allocation to copy the loaded blocks since this improves
    performance when blocks have less than MV_BlockSize entries.  The initial
    block size in the tool is now set to 1, and is updated when it receives the
    first token from memview.
Commits on Apr 9, 2013
Commits on Apr 5, 2013
  1. Initial work to support display of mapped regions.

    This change still has some display issues due to alignment mismataches, and
    a crash in linear mode.
Commits on Mar 28, 2013
Commits on Mar 23, 2013
  1. Add initial support for data display when zoomed in.

    This change uses ptrace() to extract the contents of the displayed memory
    and shows it as rendered text in the viewer.
Commits on Mar 18, 2013
Commits on Feb 23, 2013
Commits on Feb 21, 2013
Commits on Jan 26, 2013
  1. Add a ring buffer to the shared memory loader.

    Also adjust the data IPC data structures to embed simple per-message data
    in the header to avoid multiple messages.
  2. Add shared memory support for block transfer.

    Synchronization is done using the existing input pipe and a new output
    pipe, which sends a token when the memory is ready for writing.
Commits on Jan 22, 2013
  1. Leave the loader thread running.

    This change leaves the loader thread executing so that it can handle zoom
    requests.  Previously it was possible to lose some zoom requests due to the
    single shot nature of the thread execution.
Commits on Jan 19, 2013
  1. Use a timer to control memory display rather than the batch number. T…

    …his should help normalize display between systems with differing performance.
Commits on Jan 14, 2013
  1. Add a copyright and license (GNU GPL v2 to match the valgrind license).

    Give a MV_ prefix to names in mv_ipc.h.
    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@132 6d4121a9-3ab8-48c6-8db9-97dca464e206
Commits on Jan 10, 2013
  1. Add a class to manage the set of stack traces.

    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@125 6d4121a9-3ab8-48c6-8db9-97dca464e206
Commits on Jan 9, 2013
  1. Add interface support for stack traces. Remove shared memory interface

    except for a template for future work.
    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@124 6d4121a9-3ab8-48c6-8db9-97dca464e206
Commits on Dec 16, 2012
  1. Correct query printout. Use unique_ptr for the pending state so we can

    fix a memory leak when it's replaced.
    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@109 6d4121a9-3ab8-48c6-8db9-97dca464e206
  2. Add a mutex for shared variables in the loader.

    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@107 6d4121a9-3ab8-48c6-8db9-97dca464e206
  3. Add support for threaded loads.

    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@103 6d4121a9-3ab8-48c6-8db9-97dca464e206
Commits on Dec 15, 2012
  1. Add zooming.

    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@95 6d4121a9-3ab8-48c6-8db9-97dca464e206
Commits on Feb 18, 2012
  1. Move tool makefiles and source into the tool directory, for easier se…

    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@66 6d4121a9-3ab8-48c6-8db9-97dca464e206
Commits on Dec 13, 2011
  1. Add options to set the tool and valgrind executable at runtime.

    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@50 6d4121a9-3ab8-48c6-8db9-97dca464e206
Commits on Dec 11, 2011
  1. Add panning support, using a quadtree to cull blocks that lie outside…

    … the
    rendered region.
    git-svn-id: svn+ssh://truffle/home/andrew/repo/memview@36 6d4121a9-3ab8-48c6-8db9-97dca464e206
Something went wrong with that request. Please try again.