Python GDB commands for debugging ESP-IDF drivers
Project description
idf-drivers-gdb
idf-drivers-gdb provides Python GDB commands for debugging ESP-IDF drivers.
Available Commands
framebuffer_display: Read LCD framebuffer memory from the target and render the image on the host side.
Installation
python3 -m pip install idf-drivers-gdb
ESP-IDF loads this package from the generated GDB init files. If the package is
installed in the Python environment used by GDB, importing idf_drivers_gdb
registers the commands automatically.
framebuffer_display
framebuffer_display reads LCD framebuffer memory from the target, converts the
pixel data, writes a .ppm file, and can render the image directly in the host
terminal.
Prerequisites
Use a terminal that can display terminal images, such as Kitty, WezTerm, or iTerm2 with image protocol support.
The package depends on term-image for host-side image rendering. If terminal
rendering is not available, the command still writes a .ppm file that can be
opened manually.
Command Syntax
(gdb) framebuffer_display <gdb-expression/address> <width_pixels> <height_pixels> \
<rgb565|bgr565|rgb888|bgr888|argb8888|rgba8888|bgra8888> [-s <bytes>] \
[-c <x,y,w,h>] [-o <path>] [-n]
For users who prefer named parameters, the long-option syntax is still supported:
(gdb) framebuffer_display --expr <gdb-expression> --width <pixels> --height <pixels> \
--format <rgb565|bgr565|rgb888|bgr888|argb8888|rgba8888|bgra8888> [--stride <bytes>] \
[--crop <x,y,w,h>] [--output <path>] [--no-show]
or
(gdb) framebuffer_display --addr <address> --width <pixels> --height <pixels> \
--format <rgb565|bgr565|rgb888|bgr888|argb8888|rgba8888|bgra8888> [--stride <bytes>] \
[--crop <x,y,w,h>] [--output <path>] [--no-show]
Argument Reference
--addr/-a: Start address of framebuffer memory.--expr/-e: GDB expression to evaluate as the framebuffer address.--width/-w: Full framebuffer width in pixels.--height/-h: Full framebuffer height in pixels.--format/-f: Pixel format of the framebuffer. Supported formats:rgb565,bgr565,rgb888,bgr888,argb8888,rgba8888,bgra8888.--stride/-s: Bytes per framebuffer row in memory. If omitted, it defaults towidth * bytes_per_pixel.--crop/-c: Crop region in full-frame coordinates:x,y,w,h.--output/-o: Output image path (.ppm). Default isframebuffer_display.ppmin the system temporary directory.--no-show/-n: Export only. Do not render in terminal.
RGB Panel Example
(gdb) b esp_lcd_panel_draw_bitmap
(gdb) c
(gdb) framebuffer_display "(uintptr_t)((esp_rgb_panel_t *)panel)->fbs[0]" 800 480 rgb565
Troubleshooting
Undefined command: "framebuffer_display": Installidf-drivers-gdbin the Python environment used by GDB, then restart the GDB session.No symbol "<name>" in current context: Useinfo args/info localsto verify symbol visibility.- Terminal prints raw image protocol text instead of image:
Use a compatible terminal or pass
--no-showand open the generated.ppmfile manually.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file idf_drivers_gdb-0.1.0.tar.gz.
File metadata
- Download URL: idf_drivers_gdb-0.1.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45d5044dab8349e3fcca80615641640fd996809794603bb9f8b46daa94cc390f
|
|
| MD5 |
044eb1cd29946b58ae6c43cc61265334
|
|
| BLAKE2b-256 |
9ef75f18b7f4734f23697ace2071cec0dd6ee333653e80f2d5cbca66de54b540
|
File details
Details for the file idf_drivers_gdb-0.1.0-py3-none-any.whl.
File metadata
- Download URL: idf_drivers_gdb-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cadec8247a3584111007257fe1b8ccb9626f36283b17d76f713f5481e2946d53
|
|
| MD5 |
6bf6e229b9ddf9d4cf56662b002b5be8
|
|
| BLAKE2b-256 |
a68919720533cbcc1c6ee3a853ac8419d15d0a13ae25e0986160725e5307f60d
|