GDB Changelog

What's new in GDB 8.3.1

Oct 2, 2019
  • This is a minor corrective release over GDB 8.3, fixing the following issues:
  • PR c++/20020 (GDB segfault on printing objects)
  • PR gdb/24454 (nat/x86-linux-dregs.c:146: internal-error: void x86_linux_update_debug_registers(lwp_info*): Assertion `lwp_is_stopped (lwp)' failed)
  • PR breakpoints/24541 (Incorrect evaluation of systemtap probes due to register being signed and probe expression assuming unsigned)
  • PR symtab/24545 (Symbol loading performance regression with cc1)
  • PR gdb/24592 (amd64->i386 linux syscall restart problem)
  • PR gdb/25009 (terminate called after throwing an instance of 'srchilite::ParserException')
  • PR gdb/25010 (Calls to error () can cause SIGTTOU to send gdb to the background)
  • PR breakpoints/25011 (Breakpoints on file reloads broken for PIE binaries)
  • This corrective release also brings the following testsuite fixes and enhancements:
  • PR testsuite/25005 (gdb-caching-proc.exp takes a lot of time on skip_opencl_tests)
  • PR testsuite/25016 (Test-case failures for -pie)

New in GDB 8.2.1 (Jan 8, 2019)

  • PR build/23516 (gdb build error under msys+mingw: strip can't handle gdb-add-index.exe)
  • PR build/23623 (install-strip fails)
  • PR rust/23626 (gdb crashes in upstream rust nil-enum test)
  • PR rust/23650 (rust field name access error mentions "foo")
  • PR gdb/23663 (gdb 8.1.1: undefined rpl_stat function with musl toolchains)
  • PR python/23669 (gdb.execute("show commands") doesn't work)
  • PR python/23714 (Command repetition stops working after gdb.execute)
  • PR gdb/23838 (8.2 regression for invalid -data-directory)
  • PR gdb/23974 ("info os" crash when specifying invalid object)
  • PR gdb/23999 (SYMBOL_LANGUAGE assertion failure on AIX)
  • PR gdb/24003 (Error when binary searching CUs for a specific DIE when using DWZ)

New in GDB 8.1.1 (Aug 7, 2018)

  • PR gdb/22824 (misleading description of new rbreak Python function in GDB 8.1 NEWS file)
  • PR gdb/22849 (ctrl-c doesn't work in extended-remote)
  • PR gdb/22907 ([Regression] gdbserver doesn't work with filename-only binaries)
  • PR gdb/23028 (inconsistent disassemble of vcvtpd2dq)
  • PR gdb/23053 (Fix -D_GLIBCXX_DEBUG gdb-add-index regression)
  • PR gdb/23127 ([AArch64] GDB cannot be used for debugging software that uses high Virtual Addresses)
  • PR server/23158 (gdbserver no longer functional on Windows)
  • PR breakpoints/23210 ([8.1/8.2 Regression] Bogus Breakpoint address adjusted from 0xf7fe7dd3 to 0xfffffffff7fe7dd3)

New in GDB 8.1 (Jan 31, 2018)

  • Breakpoints on C++ functions are now set on all scopes by default ("wild" matching);
  • Support for inserting breakpoints on functions marked with C++ ABI tags;
  • Target floating-point arithmetic emulation during expression evaluation (requires MPFR 3.1 or later);
  • Various Python Scripting enhancements;
  • Improved Rust support; in particular, Trait objects can now be inspected when debugging Rust code;
  • GDB no longer makes assumptions about the type of symbols without debugging information to avoid producing erroneous and often confusing results;
  • The 'enable' and 'disable' commands now accept a range of breakpoint locations;
  • New 'starti' command to start the program at the first instruction;
  • New 'rbreak' command to insert a number of breakpoints via a regular expression pattern (requires Python);
  • The 'ptype' command now supports printing the offset and size of the fields in a struct;
  • The 'gcore' command now supports dumping all the memory mappings ('-a' command-line option);
  • New shortcuts for TUI Single-Key mode: 'i' for stepi, and 'o' for nexti;
  • GDBserver enhancements:
  • Support for transmitting environment variables to GDBserver;
  • Support for starting inferior processes with a specified initial working directory;
  • On Unix systems, support for globbing expansion and variable substitution of inferior command-line arguments;
  • Various completion enhancements;
  • The command used to compile and inject code with the 'compile' command is now configurable;
  • New '--readnever' command-line option to speed the GDB startup when debugging information is not needed;
  • Support for the following new native configurations:
  • FreeBSD/aarch64 (aarch64*-*-freebsd*);
  • FreeBSD/arm (arm*-*-freebsd*);
  • Support for the following new targets:
  • FreeBSD/aarch64 (aarch64*-*-freebsd*);
  • FreeBSD/arm (arm*-*-freebsd*);
  • OpenRISC ELF (or1k*-*-elf)
  • Removed support for the following targets and native configurations:
  • Solaris2/x86 (i?86-*-solaris2.[0-9]);
  • Solaris2/sparc (sparc*-*-solaris2.[0-9]);

New in GDB 8.0 (Jul 26, 2017)

  • Building this version of GDB now requires the following tools:
  • A C++-11 compiler (for instance, GCC 4.8 or later);
  • GNU make version 3.81 or later.
  • Changes in this release include:
  • C++: Support for rvalue references
  • Python scripting enhancements:
  • New functions to start, stop and access a running btrace recording.
  • Rvalue reference support in gdb.Type.
  • GDB commands interpreter:
  • User commands now accept an unlimited number of arguments.
  • The "eval" command now expands user-defined arguments.
  • DWARF version 5 support
  • (note that its .debug_names index is not supported yet).
  • GDB/MI enhancements:
  • New -file-list-shared-libraries command to list the shared libraries in the program.
  • New -target-flash-erase command, to erase flash memory.
  • Support for native FreeBSD/mips (mips*-*-freebsd)
  • Support for the following targets:
  • Synopsys ARC (arc*-*-elf32)
  • FreeBSD/mips (mips*-*-freebsd)
  • Miscellaneous enhancements:
  • Command-line redirection now supported on MS-Windows hosts.
  • Support for thread names on MS-Windows.
  • Support for the PKU register on GNU/Linux.
  • Support for Target descriptions on sparc32 and sparc64.
  • New GDB/CLI command to erase flash memory
  • rdrand and rdseed instructions record/replay support.
  • Support for the following features have been removed:
  • Support for Java programs compiled with gcj
  • Support for the following configurations:
  • FreeBSD/alpha (alpha*-*-freebsd*)
  • GNU/kFreeBSD/alpha (alpha*-*-kfreebsd*-gnu)

New in GDB 7.11 (Feb 26, 2016)

  • Per-inferior thread numbers.
  • Breakpoint "explicit locations" (via CLI and GDB/MI).
  • New convenience variables ($_gthread, $_inferior).
  • Record btrace now supports non-stop mode.
  • Various improvements on AArch64 GNU/Linux:
  • Multi-architecture debugging support.
  • displaced stepping.
  • tracepoint support added in GDBserver.
  • kernel-based threads support on FreeBSD.
  • Support for reading/writing memory and extracting values on architectures whose memory is addressable in units of any integral multiple of 8 bits.
  • In Ada, the overloads selection menu provides the parameter types and return types for the matching overloaded subprograms.
  • Various remote protocol improvements, including several new packets which can be used to support features such as follow-exec-mode, exec catchpoints, syscall catchpoints, etc.
  • Some minor improvements in the Python API for extending GDB.
  • Support for various ROM monitors has been removed:
  • target dbug dBUG ROM monitor for Motorola ColdFire
  • target picobug Motorola picobug monitor
  • target dink32 DINK32 ROM monitor for PowerPC
  • target m32r Renesas M32R/D ROM monitor
  • target mon2000 mon2000 ROM monitor
  • target ppcbug PPCBUG ROM monitor for PowerPC

New in GDB 7.10.1 (Dec 17, 2015)

  • PR remote/18965 (new vforkdone stop reply should indicate parent process ID)
  • PR gdb/18957 (build failure in linux-namespaces.c due to setns static declaration)
  • PR gdb/19297 (Internal error on "record btrace": Unexpected branch trace format)
  • PR c++/16957 (gdb segfaults when loading symbols in C++11-enabled application)
  • PR c++/19306 (Incorrect demangling of symbols with ABI tags)
  • PR c++/19307 (Demangler bugs found with fuzz-testing)
  • PR c++/19308 (Demangle C++ Transactional Memory TS (N4514) symbols)

New in GDB 7.10 (Aug 29, 2015)

  • Improved support for accessing shared libraries directly from the target system when debugging remotely.
  • Various Guile and Python scripting improvements.
  • Record-replay and reverse debugging on Aarch64 Linux.
  • Support for fork events on extended-remote Linux targets (Linux kernels 2.5.60 and later).
  • DTrace USDT (Userland Static Defined Tracing) probes support on x86_64 GNU/Linux targets.
  • Vector ABI support on S/390 GNU/Linux targets.
  • GDB now reads the GDBHISTSIZE environment variable rather than HISTSIZE to determine the size of GDB's command history.
  • Support for setting the parity when connecting to the target using a serial interface.
  • The number of candidates to be considered during completion can now be limited.
  • Support for Sun's version of the "stabs" debug file format has been removed.
  • Support for HP/PA running HP-UX (hppa*-*-hpux*) has been removed.
  • Support for Itanium running HP-UX (ia64-*-hpux*) has been removed.

New in GDB 7.9.1 (May 15, 2015)

  • PR build/18033 (C++ style comment used in gdb/iq2000-tdep.c and gdb/compile/compile-*.c)
  • PR build/18298 ("compile" command cannot find compiler if tools configured with triplet instead of quadruplet)
  • PR tui/18311 (Random SEGV when displaying registers in TUI mode)
  • PR python/18299 (exception when registering a global pretty-printer in verbose mode)
  • PR python/18066 (argument "word" seems broken in Command.complete (text, word))
  • PR pascal/17815 (Fix pascal behavior for class fields with testcase)
  • PR python/18285 (ptype expr-with-xmethod causes SEGV)

New in GDB 7.9 (Feb 21, 2015)

  • Python scripting enhancements.
  • Source code compilation and injection into the inferior.
  • New commands, options, convenience variables/options.
  • MIPS SDE support (mips*-sde*-elf*).
  • Better handling of signals when debugging threaded programs.

New in GDB 7.8.2 (Jan 16, 2015)

  • PR symtab/17642 ([7.8 regression] internal-error: resolve_dynamic_struct: Assertion `TYPE_NFIELDS (type) > 0' failed.)
  • PR binutils/17677 (_bfd_elf_get_synthetic_symtab runs in O(n^2) complexity)
  • PR gdb/16215 (SPARC: can't compute CFA for this frame)
  • PR gdb/17525 (target-async: breakpoint commands not executed when program run from -x script)
  • PR cli/17828 ([7.8 regression] -batch -ex r breaks terminal)

New in GDB 7.8.1 (Oct 30, 2014)

  • PR python/17364 (Need better printer names in bound_registers.py)
  • PR build/17104 (CFLAGS="-Wall -Wextra" gdb/confgure --with-babeltrace fails)
  • PR gdb/17345 (babeltrace (1.1.2 and later) complains about the ctf data generated by GDB)
  • PR build/17298 (gcore: Couldn't get registers: No such process)
  • PR python/17342 (Xmethod Python is not Python 3 compatible)
  • PR python/17355 (Crash on Python frame filters with unreadable arg)
  • PR guile/17367 (computation of guild path wrong when pkg-config script supplied as arg to --with-guile)
  • PR gdb/17247 (gdb freezes on multi threaded app)
  • PR gdb/17347 (Regression: GDB stopped on run with attached process)
  • PR gdb/17407 (Regression for Linux vDSO reading)
  • PR server/17457 (aarch64/gdbserver: wrong floating point registers display)
  • PR server/17487 (state->dr_control_mirror == 0 failed assertion in gdbserver on Windows)
  • PR gdb/17472 (with annotations, input while executing in the foreground crashes readline/gdb)
  • PR gdb/17471 (repeating a background command makes it foreground)
  • PR cli/17300 (crash in non-stop mode with continue -a & (readline_callback_read_char() called with no handler!))
  • PR python/17372 (python hangs when displaying help())
  • PR python/17408 (../../gdb/infrun.c:5256: internal-error: switch_back_to_stepped_thread: Assertion `!schedlock_applies(1)' failed.)

New in GDB 7.8 (Aug 27, 2014)

  • Guile scripting support.
  • Python scripting enhancements.
  • New commands, options, convenience variables/options.
  • Remote Protocol and GDBserver enhancements.
  • New target configurations (PowerPC64 GNU/Linux little-endian).
  • btrace enhancements.
  • ISO C99 variable length automatic arrays support.
  • The "compare-sections" command now works on all targets.
  • The "target native" command now connects to the native target.

New in GDB 7.7 (Feb 6, 2014)

  • Enhanced Python scripting support.
  • Some C++ improvements.
  • New commands, options, convenience variables/options.
  • Several GDB/MI new commands and enhancements.
  • Remote Protocol and GDBserver enhancements.
  • New target configurations (Nios II, TI MSP430).
  • GDB Windows x64 unwinding data support.
  • SystemTap SDT probes support on AArch64 GNU/Linux.
  • CTF (Common Trace Format) support.
  • New scripts gcore and gdb-add-index.sh.
  • Improved arm*-linux record/replay support.
  • Removed support for a.out NetBSD and OpenBSD obsolete configurations. ELF variants of these configurations are kept supported.
  • The "set|show remotebaud" commands are deprecated in favor of "show|show serial baud".

New in GDB 7.6.2 (Dec 12, 2013)

  • PR breakpoint/16251 (AArch64 hardware breakpoint error after fork)
  • PR gdb/16303 (GDB 7.6.1 does not work with binutils 2.24 on MIPS16 and microMIPS)

New in GDB 7.6.1 (Oct 30, 2013)

  • PR tdep/15420 (Cannot debug threaded programs on newer versions of x86-solaris - Solaris 10, Update 10 or later)
  • PR remote/15455 (QTro remote packet broken)
  • PR build/15476 (Build failure due to incomplete enum type in utils.h)
  • PR server/15594 (tls support in 64x32 x86 gdbserver doesn't extend address to 64 bit)
  • PR server/15075 (dprintf inteferes with "next")
  • PR server/15434 (dprintf uses a synchronous 'continue' even in non-stop mode)
  • PR tui/14880 (in split register layouts, up results in assertion failure in value.c)
  • PR c++/15519 (GDB 7.6 is 94x slower than GDB 7.5.1 using a certain core file)
  • PR gdb/15837 (GDB prints entry values for local variables)
  • PR gdb/15415 (gdb resolves symbolic links when passing argv[0])
  • PR cli/15603 (CTRL-C can no longer interrupt inferior)
  • PR gdb/15604 (gdbserver socket leak 7.5 regression)

New in GDB 7.5 (Aug 20, 2012)

  • Go language support.
  • New targets (x32 ABI, microMIPS, Renesas RL78, HP OpenVMS ia64).
  • More Python scripting improvements.
  • SDT (Static Defined Tracing) probes support with SystemTap probes.
  • GDBserver improvements (stdio connections, target-side evaluation of breakpoint conditions, remote protocol improvements).
  • Other miscellaneous improvements (ability to stop when a shared library is loaded/unloaded, dynamic printf, etc).
  • Reverse debugging on ARM.
  • The binary "gdbtui" has been abandoned and can no longer be built. Use "gdb -tui" instead.

New in GDB 7.4 (Jan 26, 2012)

  • Ambiguous linespecs are now handled more consistently.
  • Uninteresting functions and files can now be skipped when stepping with the "skip function" and "skip file" commands.
  • Commands for setting and getting the maximum length limit of a remote target hardware watchpoint were added.
  • Python scripting was vastly improved.
  • Many other improvements, bugfixes, and general changes were made.

New in GDB 7.1 (Mar 19, 2010)

  • Support for new targets (including a simulator):
  • Xilinx MicroBlaze
  • Renesas RX
  • The major new features are:
  • Multi-program debugging, allowing the debugger to control more than
  • one program within the same GDB session.
  • Position Independent Executable (PIE) debugging.
  • It also features many enhancements and bug fixes, including:
  • Python support has been extended.
  • C++ support improvements (namespace, cast operators, bug fixes)
  • Tracepoint support improvements.
  • Process Record improvements (save/restore execution log, hardware
  • watchpoint support).
  • Remote protocol enhancements (Linux kernel debugging, new packets
  • for tracepoint support)

New in GDB 7.0 (Oct 8, 2009)

  • The new native configurations being supported are:
  • x86/x86_64 Darwin
  • x86_64 MinGW
  • Support for the following targets has been added:
  • Lattice Mico32
  • x86/x86_64 DICOS
  • S+core 3
  • The remote stub now supports x86 Windows CE
  • The major new features are:
  • Python scripting support
  • Reverse debugging, Process record and replay
  • Non-stop debugging
  • Multi-architecture debugging
  • Multi-inferior, multi-process debugging
  • It also features many enhancements and bug fixes, including:
  • GDB now has an interface for JIT compilation
  • Tracepoints may now be conditional
  • Multi-byte and wide character set support
  • New /r and /m modifiers for the "disassemble" command
  • Automatic retrieval of shared library files from remote targets
  • Inlined functions are now supported
  • New remote protocal packets
  • GDB is now able to read compressed debug sections
  • Thread switching is now supported on Tru64
  • Ada task switching is now supported
  • New features in gdbserver, the GDB remote stub
  • New command to stop execution when a system call is made