Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Pinvis is a 3D binary executable file visualization tool. A video demo is available at http://www.youtube.com/watch?v=d8NPgr5jvN4 BUILD: > vi Makefile.pin.gnu.config #set PIN_HOME to the rootdir of pintool > make > ./runpin > ./runpinvis streamcount.bin timeline.bin KEYBOARD/MOUSE COMMANDS: left click: highlight stream 1: Grid view 2: Row view 3: Memory access coloring 4: Execution frequency coloring 8: Trackball camera mode 9: UFO camera mode n: next stream in timeline p: previous stream in timeline h: hide all streams from same image as highlighted stream u: hide all streams except those from same image as highlighted stream Trackball camera mode: left mouse button: rotate scene right mouse button: zoom in and out space bar: reset to home view UFO camera mode: UpArrow: Acceleration forward. DownArrow: Acceleration backward (or deceleration forward). LeftArrow: Rotate view and direction of travel to the left. RightArrow: Rotate view and direction of travel to the right. SpaceBar: Brake. Gradually decelerates linear and rotational movement. Shift/UpArrow: Accelerate up. Shift/DownArrow: Accelerate down. Shift/LeftArrow: Accelerate (linearly) left. Shift/RightArrow: Accelerate (linearly) right. Shift/SpaceBar: Instant brake. Immediately stop all linear and rotational movement. When the Shift key is released, up, down, linear left and/or linear right movement is decelerated. Parameters: Ctrl/UpArrow: Rotate view (but not direction of travel) up. Ctrl/DownArrow: Rotate view (but not direction of travel) down. Ctrl/LeftArrow: Rotate view (but not direction of travel) left. Ctrl/RightArrow: Rotate view (but not direction of travel) right. Ctrl/Return: Straightens out the view offset. TODO: Use ManualExamples/invocation.cpp to instrument routines? instruction-level visualization memory visualization return visualization pintool filtering better camera control syscall visualization?? button overlay QT-ify testing start pintool from within pinvis & connect with FIFO or similar, for realtime updates filter by process/function (from pintool or vistool) try parent injection?