C++ object lifecycle visualizer. Uses LLVM/Clang to statically analyze C++ source code and visualize object construction, destruction, copy/move operations, and pointer states through a Qt6 GUI.
- Static analysis of C++ source files using Clang tooling
- Tracks object lifecycles: construction, destruction, copy/move semantics
- Tracks pointers: raw, unique_ptr, shared_ptr, weak_ptr
- Visualizes scope boundaries, function calls, memory allocations
- Timeline view of lifecycle events
- CMake 3.25+
- C++23 compiler (GCC 13+ or Clang 18+)
- Qt6 (Core, Gui, Widgets, Concurrent)
- LLVM 18+
sudo apt install cmake build-essential qt6-base-dev llvm-18-dev libclang-18-devmkdir build && cd build
cmake ..
make -j$(nproc)The executable is at build/visir.
cmake .. -DVISIR_BUILD_TESTS=ON
make -j$(nproc)Run tests:
./visir_tests
# or
ctest --output-on-failure./visir # Launch GUI
./visir -f path/to/source.cpp # Open file
./visir -f path/to/source.cpp -a # Open and analyzevisir/
├── include/visir/
│ ├── model/ # ObjectInfo, PointerInfo, LifecycleEvent
│ ├── core/ # Analyzer, ASTVisitor, ObjectTracker
│ └── gui/ # Qt widgets
├── src/
├── test/ # Google Test suite
└── examples/ # Sample C++ files for analysis
MIT