Skip to content

mendax0110/visir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

visir

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.

Features

  • 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

Dependencies

  • CMake 3.25+
  • C++23 compiler (GCC 13+ or Clang 18+)
  • Qt6 (Core, Gui, Widgets, Concurrent)
  • LLVM 18+

Ubuntu/Debian

sudo apt install cmake build-essential qt6-base-dev llvm-18-dev libclang-18-dev

Build

mkdir build && cd build
cmake ..
make -j$(nproc)

The executable is at build/visir.

Build with Tests

cmake .. -DVISIR_BUILD_TESTS=ON
make -j$(nproc)

Run tests:

./visir_tests
# or
ctest --output-on-failure

Usage

./visir                                    # Launch GUI
./visir -f path/to/source.cpp              # Open file
./visir -f path/to/source.cpp -a           # Open and analyze

Project Structure

visir/
├── include/visir/
│   ├── model/      # ObjectInfo, PointerInfo, LifecycleEvent
│   ├── core/       # Analyzer, ASTVisitor, ObjectTracker
│   └── gui/        # Qt widgets
├── src/
├── test/           # Google Test suite
└── examples/       # Sample C++ files for analysis

License

MIT

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors