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