Skip to content

A statically compiled gdb/gdbserver-16.x repository

Notifications You must be signed in to change notification settings

guyush1/gdb-static

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8adc0f8 Β· May 3, 2025
Apr 25, 2025
May 2, 2025
Oct 29, 2024
May 2, 2025
May 2, 2025
May 2, 2025
May 3, 2025
Apr 25, 2025
Jan 13, 2025

Repository files navigation

gdb-static

Frozen static builds of everyone's favorite debugger!🧊

TL;DR

Introduction

Who doesn't love GDB? It's such a powerful tool, with such a great package.
But sometimes, you run into one of these problems:

  • You can't install GDB on your machine
  • You can't install an updated version of GDB on your machine
  • Some other strange embedded reasons...

This is where gdb-static comes in! We provide static builds of gdb (and gdbserver of course), so you can run them on any machine, without any dependencies!

Features
  • Static Builds: No dependencies, no installation, just download and run!
  • Musl Based: We use Musl in order to create distribution-independant binaries that can work anywhere.
  • Latest Versions: We keep our builds up-to-date with the latest versions of GDB.
  • Builtin Python (Optional): We provide builds with Python support built-in.
  • XML Support: Our builds come with XML support built-in, which is useful for some GDB commands.
  • Wide Architecture Support: We support a wide range of architectures:
    • aarch64
    • arm
    • mips
    • mipsel
    • powerpc
    • x86_64

Usage

To get started with gdb-static, simply download the build for your architecture from the releases page, extract the archive, and copy the binary to your desired platform.

You may choose to copy the gdb binary to the platform, or use gdbserver to debug remotely.

Build types

We provide two types of builds:

  1. Slim builds, that contains most of the features, beside the ones mentioned below.
  2. Full builds that contains all of the slim build features, and also contains:
    • Python support
    • Cross-architecture debugging.
      Note that in order to enable cross-architecture debugging, we have to disable the simulator feature, since not all targets have a simulator.

Slim builds are approximately ~10MB. Full builds are approximately ~70MB.
You can edit the full_build_conf.sh file to disable full build exclusive features.

Development

Note

Before building, make sure to initialize & sync the git submodules.

Alternatively, you can build gdb-static from source. To do so, follow the instructions below:

Pre-requisites
To be able to build `gdb-static`, you will need the following tools installed on your machine:

  • Docker
  • Docker buildx
  • Git
Building for a specific architecture

To build gdb-static for a specific architecture, run the following command:

make build-<ARCH>-[slim/full]

Where <ARCH> is the architecture you want to build for, and slim/full determines the build type (see here).

The resulting binary will be placed in the build/artifacts/ directory:

build/
└── artifacts/
    └── <ARCH>/
        └── ...
Building for all architectures

To build gdb-static for all supported architectures, run the following command:

make build

The resulting binary will be placed in the build/artifacts/ directory.

Contributing

  • Bug Report: If you see an error message or encounter an issue while using gdb-static, please create a bug report.

  • Feature Request: If you have an idea or if there is a capability that is missing and would make gdb-static more robust, please submit a feature request.

Contributors