tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

The GNU GDB Debugger and NetBSD (Part 1)

The NetBSD team of developers maintains two copies of GDB:

    One in the base-system with a stack of local patches.
    One in pkgsrc with mostly build fix patches.

The process of maintaining a modern version (GPLv3) of GDB in basesystem
is tainted with a constant extra cost. The NetBSD developers need to
rebase the stack of local patches for the newer releases of the debugger
and resurrect the support. The GDB project is under an active
development and in active refactoring of the code, that was originally
written in C, to C++.

Unfortunately we cannot abandon the local basesystem patches and rely on
a pristine version as there is lack of feature parity in the pkgsrc
version of GDB: no threading support, not operational support for most
targets, no fork/vfork/etc events support, no auxv reading support on
64-bit kernels, no proper support of signals, single step etc.

Additionally there are extra GDB patches stored in pkgsrc-wip (created
by me last year), that implement the gdbserver support for NetBSD/amd64.
gdbserver is a GDB version that makes it possible to remotely debug
other programs even across different Operating Systems and CPUs. This
code has still not been merged into the mainline base-system version.
This month, I have discovered that support needs to be reworked, as the
preexisting source code directory hierarchy was rearranged.

Unless otherwise specified all the following changes were upstreamed to
the mainstream GDB repository. According to the GDB schedule, the GDB10
branch point is planned on 2020-05-15 with release on 2020-06-05. It's a
challenge to see how much the GDB support can be improved by then for

Plan for the next milestone

Finish reimplementing operational support of debugging of multi-threaded
programs and upstream more patches, especially CPU-independent ones.

Home | Main Index | Thread Index | Old Index