Skip to main content

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 to width * bytes_per_pixel.
  • --crop / -c: Crop region in full-frame coordinates: x,y,w,h.
  • --output / -o: Output image path (.ppm). Default is framebuffer_display.ppm in 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": Install idf-drivers-gdb in the Python environment used by GDB, then restart the GDB session.
  • No symbol "<name>" in current context: Use info args / info locals to verify symbol visibility.
  • Terminal prints raw image protocol text instead of image: Use a compatible terminal or pass --no-show and open the generated .ppm file manually.

Metadata

Release files for idf-drivers-gdb 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for idf-drivers-gdb 0.1.1
File Size Uploaded
idf_drivers_gdb-0.1.1.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for idf-drivers-gdb 0.1.1
File Interpreter ABI Platform
idf_drivers_gdb-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 23.2 kB

Release files / idf_drivers_gdb-0.1.1.tar.gz

Download URL idf_drivers_gdb-0.1.1.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
dc972dfb9b106b0b883b41bbf8c3ed9cbee8a97367c75eeeab772c573c8455c0
BLAKE2b-256 checksum
How to use checksums
918fa3010dad3fe0836a4187081a1481fbcc1619614cb949a00afe738f7c629c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13

Release files / idf_drivers_gdb-0.1.1-py3-none-any.whl

Download URL idf_drivers_gdb-0.1.1-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aab3fbc57bfcef44332b9510c4bc16efe40d4b5db1f69f736ae397690f53f273
BLAKE2b-256 checksum
How to use checksums
ecc290ef0c58f637d7b274bcbd38328edbb5bde88b355b2fab6eeff501eab338
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page