An advanced in-memory image visualization plugin for GDB and LLDB on Linux, with experimental support for MacOS and Windows. Previously known as gdb-imagewatch. Also available as an extension for VSCode and forks
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Healthy fork ratio
- ✓Clear description
- ✓Topics declared
- ✓Mature repo (>1y old)
git clone https://github.com/OpenImageDebugger/OpenImageDebuggerResumen de Tools
# Open Image Debugger: Enabling visualization of in-memory buffers on GDB/LLDB
[](https://marketplace.visualstudio.com/items?itemName=OpenImageDebugger.openimagedebugger-vscode)
[](https://open-vsx.org/extension/openimagedebugger/openimagedebugger-vscode)
Open Image Debugger is a tool for visualizing in-memory buffers during debug
sessions, compatible with both GDB and LLDB. It works out of the box with
instances of the OpenCV `Mat` class and `Eigen` matrices, but can also be
customized to work with any arbitrary data structure.

> **Prefer VS Code or a fork (Cursor, VSCodium, Windsurf, …)?** Skip the manual
> build — install the extension from the
> [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=OpenImageDebugger.openimagedebugger-vscode)
> or [Open VSX](https://open-vsx.org/extension/openimagedebugger/openimagedebugger-vscode).
> See [Installation](#vs-code-and-forks) below.
> **New — declarative custom types.** You can now describe your own buffer types
> in a `.oid/types.json` file instead of writing Python; the same file works in
> gdb, lldb, and the VS Code extension. See
> [doc/declarative-types.md](doc/declarative-types.md).
# Download (experimental) [](https://tooomm.github.io/github-release-stats/?username=OpenImageDebugger&repository=OpenImageDebugger&search=0)
## A bit experimental, better to compile manually
## Features
* GUI interactivity:
* Scroll to zoom, left click+drag to move the buffer around;
* Rotate buffers 90° clockwise or counterclockwise;
* Go-to widget that quickly takes you to any arbitrary pixel location;
* Buffer values: Zoom in close enough to inspect the numerical contents of any pixel.
* Auto update: Whenever a breakpoint is hit, the buffer view is automatically
updated.
* Auto contrast: The entire range of values present in the buffer can be
automatically mapped to the visualization range `[0, 1]`, where `0`
represents black and `1` represents white.
* The contrast range can be manually adjusted, which is useful for inspecting
buffers with extreme values (e.g. infinity, nan and other outliers).
* Link views together, moving all watched buffers simultaneously when any
single buffer is moved on the screen
* Supported buffer types: uint8_t, int16_t, uint16_t, int32_t, uint32_t,
float and double
* Supported buffer channels: Up to four channels (Grayscale, two-channels, RGB
and RGBA)
* GPU accelerated
* Supports large buffers whose dimensions exceed GL_MAX_TEXTURE_SIZE.
* Supports data structures that map to a ROI of a larger buffer.
* Exports buffers as png images (with auto contrast) or octave/matlab matrix
files (unprocessed).
* Auto-load buffers being visualized in the previous debug session
* Designed to scale well for HighDPI displays
* Works on Linux, macOS X and Windows (experimental)
## Supported OSes
* OID is developed with Ubuntu as the main target. The goal is to support the two latest LTS versions at a given time.
* Ubuntu is also used as a basis for the minimum versions of the dependencies: we try to support the default versions of the packages you get via `apt install`
* There are currently no plans to support other Linux distros. OID may or may not compile on your favorite distro, your mileage may vary.
* Support for MacOS and Windows are somewhat experimental now - the code should be able to compile (see <https://github.com/OpenImageDebugger/OpenImageDebugger/releases>), but the binaries are not actively tested - in fact we currently have no automated tests at all for any OS - help is more than welcome in this regard. Also, we haven't come up with a simple installation/usage guides for these OSes yet.
## Requirements
* A C++20 compliant compiler
* GDB **15.0.50+** or LLDB **18.1.3+**
* CMake **3.28.3+**
* Python **3.12.3+** development packages
* OpenGL **2.1+** support
* Linux only: Wayland and X11 development packages (needed to build the bundled GLFW) and GTK 3 development packages (needed by the native file-open dialog); see the `apt install` command below. Alternatively, configure with `-DNFD_PORTAL=ON` to use the xdg-desktop-portal (D-Bus) dialog backend instead of GTK.
All other third-party libraries are bundled as git submodules and built from source, so they don't need to be installed:
* [Dear ImGui](https://github.com/ocornut/imgui) — viewer UI
* [GLFW](https://github.com/glfw/glfw) — window and OpenGL context management
* [Eigen](https://gitlab.com/libeigen/eigen) — linear algebra for the visualization layer
* [Asio](https://github.com/chriskohlhoff/asio) (standalone) — IPC between the debugger bridge and the viewer
* [nlohmann/json](https://github.com/nlohmann/json) — settings persistence
* [stb](https://github.com/nothings/stb) — image decoding for opening files, plus PNG export and text rendering (`stb_image`, `stb_image_write`, `stb_truetype`)
* [nanosvg](https://github.com/memononen/nanosvg) — toolbar icon rasterization
* [nativefiledialog-extended](https://github.com/btzy/nativefiledialog-extended) — native OS dialog for File → Open (native builds only)
* [GoogleTest](https://github.com/google/googletest) — unit tests
Note: this list might get out-of-date by accident. For a more accurate list of requirements, please check what is used in <https://github.com/OpenImageDebugger/OpenImageDebugger/blob/main/.github/workflows/build.yml> and in the CI container images defined in <https://github.com/OpenImageDebugger/dockerfiles>.
## Installation
### VS Code and forks
The quickest way to get started is the Open Image Debugger extension, available for
VS Code and compatible forks (Cursor, VSCodium, Windsurf, and others):
* [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=OpenImageDebugger.openimagedebugger-vscode)
* [Open VSX](https://open-vsx.org/extension/openimagedebugger/openimagedebugger-vscode)
If you'd rather build and integrate the desktop version manually, follow the steps below.
### Ubuntu Linux dependencies
On Ubuntu, you can install most of the dependencies with the following command:
```bash
sudo apt install build-essential cmake libgl1-mesa-dev libgtk-3-dev libpython3-dev \
python3-dev libwayland-dev libxcursor-dev libxi-dev libxinerama-dev \
libxkbcommon-dev libxrandr-dev pkg-config
```
### Building the Open Image Debugger
Clone the source code to any folder you prefer and initialize the
submodules:
```bash
git clone https://github.com/OpenImageDebugger/OpenImageDebugger.git --recurse-submodules
```
Now run the following commands to build it:
```bash
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/path/to/installation/folder
cmake --build build --config Release --target install -j 4
```
**GDB integration:** Edit the file `~/.gdbinit` (create it if it doesn't exist)
and append the following line:
```bash
source /path/to/OpenImageDebugger/oid.py
```
**LLDB integration:** Edit the file `~/.lldbinit` (create it if it doesn't
exist) and append the following line:
```bash
command script import /path/to/OpenImageDebugger/oid.py
```
### MacOS Installation
At the moment, the MacOS build is only known to work with `python3` and `lldb`
installed from [Homebrew](https://brew.sh/) (the system-provided LLDB from the
Xcode Command Line Tools is not supported). Install them with:
```bash
brew install python3 llvm
```
Make sure `python3` resolves to the Homebrew one — run `which python3` and
confirm it points under the Homebrew prefix (`/opt/homebrew` on Apple Silicon,
`/usr/local` on Intel; `brew --prefix` prints it), rather than a pyenv, conda or
system Python. The standard Homebrew install puts that prefix's `bin` on your
`PATH`.
Then debug your program using the Homebrew LLDB, for example:
```bash
BREW_PREFIX=$(brew --prefix)
"$BREW_PREFIX"/opt/llvm/bin/lldb /path/to/your/executable
```
### Testing your installation
After compiling the plugin, you can test it by running the following command
(use the same Python 3 interpreter CMake found when building):
```bash
python3 /path/to/OpenImageDebugger/oid.py --test
```
On MacOS, invoke the test with the full path to the Homebrew `python3`, for
example:
```bash
BREW_PREFIX=$(brew --prefix)
"$BREW_PREFIX"/bin/python3 /path/to/OpenImageDebugger/oid.py --test
```
If the installation was succesful, you should see the Open Image Debugger window
with the buffers `sample_buffer_1` and `sample_buffer_2`.
## Using plugin
When the debugger hits a breakpoint, the Open Image Debugger window will be
opened. You only need to type the name of the buffer to be watched in the
"add symbols" input, and press `<enter>`.
### Opening image files directly
You can also open an image or NumPy array in the viewer without a debugger
session at all, either from the **File → Open** menu (shortcut `Ctrl+O`) or
from the command line.
From the command line, pass one or more files with the repeatable `-o` /
`--open` flag:
```bash
oidwindow --open path/to/image.png --open path/to/array.npy
```
Supported formats:
| Category | Extensions |
| --- | --- |
| Images (via stb_image) | `png`, `jpg`/`jpeg`, `bmp`, `tga`, `gif`, `psd`, `hdr`, `ppm`/`pgm`/`pnm` |
| NumPy arrays | `npy` (little-endian `uint8`/`uint16`/`int16`/`int32`/`float32`/`float64`; 2-D grayscale or 3-D with 1–4 channels) |
Files opened this way are shown alongside any debugger buffers, but they are
never reported back to a debugger and are not saved as session state.
> **Linux build note:** the native file dialog requires GTK 3
> (`libgtk-3-dev`) at build time, or configuLo que la gente pregunta sobre OpenImageDebugger
¿Qué es OpenImageDebugger/OpenImageDebugger?
+
OpenImageDebugger/OpenImageDebugger es tools para el ecosistema de Claude AI. An advanced in-memory image visualization plugin for GDB and LLDB on Linux, with experimental support for MacOS and Windows. Previously known as gdb-imagewatch. Also available as an extension for VSCode and forks Tiene 249 estrellas en GitHub y su última actualización registrada es del 2026-08-06.
¿Cómo se instala OpenImageDebugger?
+
Puedes instalar OpenImageDebugger clonando el repositorio (https://github.com/OpenImageDebugger/OpenImageDebugger) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar OpenImageDebugger/OpenImageDebugger?
+
Nuestro agente de seguridad ha analizado OpenImageDebugger/OpenImageDebugger y le ha asignado un Trust Score de 100/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene OpenImageDebugger/OpenImageDebugger?
+
OpenImageDebugger/OpenImageDebugger es mantenido por OpenImageDebugger. La última actividad registrada en GitHub es del 2026-08-06, con 26 issues abiertos.
¿Hay alternativas a OpenImageDebugger?
+
Sí. En ClaudeWave puedes explorar tools similares en /categories/tools, ordenados por popularidad o actividad reciente.
Despliega OpenImageDebugger en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/openimagedebugger-openimagedebugger)<a href="https://claudewave.com/repo/openimagedebugger-openimagedebugger"><img src="https://claudewave.com/api/badge/openimagedebugger-openimagedebugger" alt="Featured on ClaudeWave: OpenImageDebugger/OpenImageDebugger" width="320" height="64" /></a>Más Tools
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
An AI SKILL that provide design intelligence for building professional UI/UX multiple platforms
🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman
CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies
The fastest, litest AI Gateway. Rust core with Python SDK. Call 100+ LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]
A collection of notebooks/recipes showcasing some fun and effective ways of using Claude.