What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 7.8
+*** Changes since GDB 7.10
+
+* GDB now supports debugging kernel-based threads on FreeBSD.
+
+* Per-inferior thread numbers
+
+ Thread numbers are now per inferior instead of global. If you're
+ debugging multiple inferiors, GDB displays thread IDs using a
+ qualified INF_NUM.THR_NUM form. For example:
+
+ (gdb) info threads
+ Id Target Id Frame
+ 1.1 Thread 0x7ffff7fc2740 (LWP 8155) (running)
+ 1.2 Thread 0x7ffff7fc1700 (LWP 8168) (running)
+ * 2.1 Thread 0x7ffff7fc2740 (LWP 8157) (running)
+ 2.2 Thread 0x7ffff7fc1700 (LWP 8190) (running)
+
+ As consequence, thread numbers as visible in the $_thread
+ convenience variable and in Python's InferiorThread.num attribute
+ are no longer unique between inferiors.
+
+ GDB now maintains a second thread ID per thread, referred to as the
+ global thread ID, which is the new equivalent of thread numbers in
+ previous releases. See also $_gthread below.
+
+ For backwards compatibility, MI's thread IDs always refer to global
+ IDs.
+
+* Commands that accept thread IDs now accept the qualified
+ INF_NUM.THR_NUM form as well. For example:
+
+ (gdb) thread 2.1
+ [Switching to thread 2.1 (Thread 0x7ffff7fc2740 (LWP 8157))] (running)
+ (gdb)
+
+* In commands that accept a list of thread IDs, you can now refer to
+ all threads of an inferior using a star wildcard. GDB accepts
+ "INF_NUM.*", to refer to all threads of inferior INF_NUM, and "*" to
+ refer to all threads of the current inferior. For example, "info
+ threads 2.*".
+
+* You can use "info threads -gid" to display the global thread ID of
+ all threads.
+
+* The new convenience variable $_gthread holds the global number of
+ the current thread.
+
+* The new convenience variable $_inferior holds the number of the
+ current inferior.
+
+* GDB now displays the ID and name of the thread that hit a breakpoint
+ or received a signal, if your program is multi-threaded. For
+ example:
+
+ Thread 3 "bar" hit Breakpoint 1 at 0x40087a: file program.c, line 20.
+ Thread 1 "main" received signal SIGINT, Interrupt.
+
+* Record btrace now supports non-stop mode.
+
+* Support for tracepoints on aarch64-linux was added in GDBserver.
+
+* The 'record instruction-history' command now indicates speculative execution
+ when using the Intel Processor Trace recording format.
+
+* GDB now allows users to specify explicit locations, bypassing
+ the linespec parser. This feature is also available to GDB/MI
+ clients.
+
+* Multi-architecture debugging is supported on AArch64 GNU/Linux.
+ GDB now is able to debug both AArch64 applications and ARM applications
+ at the same time.
+
+* Support for fast tracepoints on aarch64-linux was added in GDBserver,
+ including JIT compiling fast tracepoint's conditional expression bytecode
+ into native code.
+
+* GDB now supports displaced stepping on AArch64 GNU/Linux.
+
+* "info threads", "info inferiors", "info display", "info checkpoints"
+ and "maint info program-spaces" now list the corresponding items in
+ ascending ID order, for consistency with all other "info" commands.
+
+* In Ada, the overloads selection menu has been enhanced to display the
+ parameter types and the return types for the matching overloaded subprograms.
+
+* New commands
+
+maint set target-non-stop (on|off|auto)
+maint show target-non-stop
+ Control whether GDB targets always operate in non-stop mode even if
+ "set non-stop" is "off". The default is "auto", meaning non-stop
+ mode is enabled if supported by the target.
+
+maint set bfd-sharing
+maint show bfd-sharing
+ Control the reuse of bfd objects.
+
+set debug bfd-cache
+show debug bfd-cache
+ Control display of debugging info regarding bfd caching.
+
+set debug fbsd-lwp
+show debug fbsd-lwp
+ Control display of debugging info regarding FreeBSD threads.
+
+set remote multiprocess-extensions-packet
+show remote multiprocess-extensions-packet
+ Set/show the use of the remote protocol multiprocess extensions.
+
+set remote thread-events
+show remote thread-events
+ Set/show the use of thread create/exit events.
+
+set ada print-signatures on|off
+show ada print-signatures"
+ Control whether parameter types and return types are displayed in overloads
+ selection menus. It is activaled (@code{on}) by default.
+
+* The "disassemble" command accepts a new modifier: /s.
+ It prints mixed source+disassembly like /m with two differences:
+ - disassembled instructions are now printed in program order, and
+ - and source for all relevant files is now printed.
+ The "/m" option is now considered deprecated: its "source-centric"
+ output hasn't proved useful in practice.
+
+* The "record instruction-history" command accepts a new modifier: /s.
+ It behaves exactly like /m and prints mixed source+disassembly.
+
+* The "set scheduler-locking" command supports a new mode "replay".
+ It behaves like "off" in record mode and like "on" in replay mode.
+
+* 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
+
+* Support for reading/writing memory and extracting values on architectures
+ whose memory is addressable in units of any integral multiple of 8 bits.
+
+* New remote packets
+
+exec stop reason
+ Indicates that an exec system call was executed.
+
+exec-events feature in qSupported
+ The qSupported packet allows GDB to request support for exec
+ events using the new 'gdbfeature' exec-event, and the qSupported
+ response can contain the corresponding 'stubfeature'. Set and
+ show commands can be used to display whether these features are enabled.
+
+vCtrlC
+ Equivalent to interrupting with the ^C character, but works in
+ non-stop mode.
+
+thread created stop reason (T05 create:...)
+ Indicates that the thread was just created and is stopped at entry.
+
+thread exit stop reply (w exitcode;tid)
+ Indicates that the thread has terminated.
+
+QThreadEvents
+ Enables/disables thread create and exit event reporting. For
+ example, this is used in non-stop mode when GDB stops a set of
+ threads and synchronously waits for the their corresponding stop
+ replies. Without exit events, if one of the threads exits, GDB
+ would hang forever not knowing that it should no longer expect a
+ stop for that same thread.
+
+N stop reply
+
+ Indicates that there are no resumed threads left in the target (all
+ threads are stopped). The remote stub reports support for this stop
+ reply to GDB's qSupported query.
+
+QCatchSyscalls:1 [;SYSNO]...
+QCatchSyscalls:0
+ Enable ("QCatchSyscalls:1") or disable ("QCatchSyscalls:0")
+ catching syscalls from the inferior process.
+
+syscall_entry stop reason
+ Indicates that a syscall was just called.
+
+syscall_return stop reason
+ Indicates that a syscall just returned.
+
+QCatchSyscalls:1 in qSupported
+ The qSupported packet may now include QCatchSyscalls:1 in the reply
+ to indicate support for catching syscalls.
+
+* Extended-remote exec events
+
+ ** GDB now has support for exec events on extended-remote Linux targets.
+ For such targets with Linux kernels 2.5.46 and later, this enables
+ follow-exec-mode and exec catchpoints.
+
+set remote exec-event-feature-packet
+show remote exec-event-feature-packet
+ Set/show the use of the remote exec event feature.
+
+ * Thread names in remote protocol
+
+ The reply to qXfer:threads:read may now include a name attribute for each
+ thread.
+
+* Target remote mode fork and exec events
+
+ ** GDB now has support for fork and exec events on target remote mode
+ Linux targets. For such targets with Linux kernels 2.5.46 and later,
+ this enables follow-fork-mode, detach-on-fork, follow-exec-mode, and
+ fork and exec catchpoints.
+
+* Remote syscall events
+
+ ** GDB now has support for catch syscall on remote Linux targets,
+ currently enabled on x86/x86_64 architectures.
+
+set remote catch-syscall-packet
+show remote catch-syscall-packet
+ Set/show the use of the remote catch syscall feature.
+
+* MI changes
+
+ ** The -var-set-format command now accepts the zero-hexadecimal
+ format. It outputs data in hexadecimal format with zero-padding on the
+ left.
+
+* Python Scripting
+
+ ** gdb.InferiorThread objects have a new attribute "global_num",
+ which refers to the thread's global thread ID. The existing
+ "num" attribute now refers to the thread's per-inferior number.
+ See "Per-inferior thread numbers" above.
+ ** gdb.InferiorThread objects have a new attribute "inferior", which
+ is the Inferior object the thread belongs to.
+
+*** Changes in GDB 7.10
+
+* Support for process record-replay and reverse debugging on aarch64*-linux*
+ targets has been added. GDB now supports recording of A64 instruction set
+ including advance SIMD instructions.
+
+* Support for Sun's version of the "stabs" debug file format has been removed.
+
+* GDB now honors the content of the file /proc/PID/coredump_filter
+ (PID is the process ID) on GNU/Linux systems. This file can be used
+ to specify the types of memory mappings that will be included in a
+ corefile. For more information, please refer to the manual page of
+ "core(5)". GDB also has a new command: "set use-coredump-filter
+ on|off". It allows to set whether GDB will read the content of the
+ /proc/PID/coredump_filter file when generating a corefile.
+
+* The "info os" command on GNU/Linux can now display information on
+ cpu information :
+ "info os cpus" Listing of all cpus/cores on the system
+
+* GDB has two new commands: "set serial parity odd|even|none" and
+ "show serial parity". These allows to set or show parity for the
+ remote serial I/O.
+
+* The "info source" command now displays the producer string if it was
+ present in the debug info. This typically includes the compiler version
+ and may include things like its command line arguments.
+
+* The "info dll", an alias of the "info sharedlibrary" command,
+ is now available on all platforms.
+
+* Directory names supplied to the "set sysroot" commands may be
+ prefixed with "target:" to tell GDB to access shared libraries from
+ the target system, be it local or remote. This replaces the prefix
+ "remote:". The default sysroot has been changed from "" to
+ "target:". "remote:" is automatically converted to "target:" for
+ backward compatibility.
+
+* The system root specified by "set sysroot" will be prepended to the
+ filename of the main executable (if reported to GDB as absolute by
+ the operating system) when starting processes remotely, and when
+ attaching to already-running local or remote processes.
+
+* GDB now supports automatic location and retrieval of executable
+ files from remote targets. Remote debugging can now be initiated
+ using only a "target remote" or "target extended-remote" command
+ (no "set sysroot" or "file" commands are required). See "New remote
+ packets" below.
+
+* The "dump" command now supports verilog hex format.
+
+* GDB now supports the vector ABI on S/390 GNU/Linux targets.
+
+* On GNU/Linux, GDB and gdbserver are now able to access executable
+ and shared library files without a "set sysroot" command when
+ attaching to processes running in different mount namespaces from
+ the debugger. This makes it possible to attach to processes in
+ containers as simply as "gdb -p PID" or "gdbserver --attach PID".
+ See "New remote packets" below.
+
+* The "tui reg" command now provides completion for all of the
+ available register groups, including target specific groups.
+
+* The HISTSIZE environment variable is no longer read when determining
+ the size of GDB's command history. GDB now instead reads the dedicated
+ GDBHISTSIZE environment variable. Setting GDBHISTSIZE to "-1" or to "" now
+ disables truncation of command history. Non-numeric values of GDBHISTSIZE
+ are ignored.
+
+* Guile Scripting
+
+ ** Memory ports can now be unbuffered.
+
+* Python Scripting
+
+ ** gdb.Objfile objects have a new attribute "username",
+ which is the name of the objfile as specified by the user,
+ without, for example, resolving symlinks.
+ ** You can now write frame unwinders in Python.
+ ** gdb.Type objects have a new method "optimized_out",
+ returning optimized out gdb.Value instance of this type.
+ ** gdb.Value objects have new methods "reference_value" and
+ "const_value" which return a reference to the value and a
+ "const" version of the value respectively.
+
+* New commands
+
+maint print symbol-cache
+ Print the contents of the symbol cache.
+
+maint print symbol-cache-statistics
+ Print statistics of symbol cache usage.
+
+maint flush-symbol-cache
+ Flush the contents of the symbol cache.
+
+record btrace bts
+record bts
+ Start branch trace recording using Branch Trace Store (BTS) format.
+
+compile print
+ Evaluate expression by using the compiler and print result.
+
+tui enable
+tui disable
+ Explicit commands for enabling and disabling tui mode.
+
+show mpx bound
+set mpx bound on i386 and amd64
+ Support for bound table investigation on Intel MPX enabled applications.
+
+record btrace pt
+record pt
+ Start branch trace recording using Intel Processor Trace format.
+
+maint info btrace
+ Print information about branch tracing internals.
+
+maint btrace packet-history
+ Print the raw branch tracing data.
+
+maint btrace clear-packet-history
+ Discard the stored raw branch tracing data.
+
+maint btrace clear
+ Discard all branch tracing data. It will be fetched and processed
+ anew by the next "record" command.
+
+* New options
+
+set debug dwarf-die
+ Renamed from "set debug dwarf2-die".
+show debug dwarf-die
+ Renamed from "show debug dwarf2-die".
+
+set debug dwarf-read
+ Renamed from "set debug dwarf2-read".
+show debug dwarf-read
+ Renamed from "show debug dwarf2-read".
+
+maint set dwarf always-disassemble
+ Renamed from "maint set dwarf2 always-disassemble".
+maint show dwarf always-disassemble
+ Renamed from "maint show dwarf2 always-disassemble".
+
+maint set dwarf max-cache-age
+ Renamed from "maint set dwarf2 max-cache-age".
+maint show dwarf max-cache-age
+ Renamed from "maint show dwarf2 max-cache-age".
+
+set debug dwarf-line
+show debug dwarf-line
+ Control display of debugging info regarding DWARF line processing.
+
+set max-completions
+show max-completions
+ Set the maximum number of candidates to be considered during
+ completion. The default value is 200. This limit allows GDB
+ to avoid generating large completion lists, the computation of
+ which can cause the debugger to become temporarily unresponsive.
+
+set history remove-duplicates
+show history remove-duplicates
+ Control the removal of duplicate history entries.
+
+maint set symbol-cache-size
+maint show symbol-cache-size
+ Control the size of the symbol cache.
+
+set|show record btrace bts buffer-size
+ Set and show the size of the ring buffer used for branch tracing in
+ BTS format.
+ The obtained size may differ from the requested size. Use "info
+ record" to see the obtained buffer size.
+
+set debug linux-namespaces
+show debug linux-namespaces
+ Control display of debugging info regarding Linux namespaces.
+
+set|show record btrace pt buffer-size
+ Set and show the size of the ring buffer used for branch tracing in
+ Intel Processor Trace format.
+ The obtained size may differ from the requested size. Use "info
+ record" to see the obtained buffer size.
+
+maint set|show btrace pt skip-pad
+ Set and show whether PAD packets are skipped when computing the
+ packet history.
+
+* The command 'thread apply all' can now support new option '-ascending'
+ to call its specified command for all threads in ascending order.
+
+* Python/Guile scripting
+
+ ** GDB now supports auto-loading of Python/Guile scripts contained in the
+ special section named `.debug_gdb_scripts'.
+
+* New remote packets
+
+qXfer:btrace-conf:read
+ Return the branch trace configuration for the current thread.
+
+Qbtrace-conf:bts:size
+ Set the requested ring buffer size for branch tracing in BTS format.
+
+Qbtrace:pt
+ Enable Intel Procesor Trace-based branch tracing for the current
+ process. The remote stub reports support for this packet to GDB's
+ qSupported query.
+
+Qbtrace-conf:pt:size
+ Set the requested ring buffer size for branch tracing in Intel Processor
+ Trace format.
+
+swbreak stop reason
+ Indicates a memory breakpoint instruction was executed, irrespective
+ of whether it was GDB that planted the breakpoint or the breakpoint
+ is hardcoded in the program. This is required for correct non-stop
+ mode operation.
+
+hwbreak stop reason
+ Indicates the target stopped for a hardware breakpoint. This is
+ required for correct non-stop mode operation.
+
+vFile:fstat:
+ Return information about files on the remote system.
+
+qXfer:exec-file:read
+ Return the full absolute name of the file that was executed to
+ create a process running on the remote system.
+
+vFile:setfs:
+ Select the filesystem on which vFile: operations with filename
+ arguments will operate. This is required for GDB to be able to
+ access files on remote targets where the remote stub does not
+ share a common filesystem with the inferior(s).
+
+fork stop reason
+ Indicates that a fork system call was executed.
+
+vfork stop reason
+ Indicates that a vfork system call was executed.
+
+vforkdone stop reason
+ Indicates that a vfork child of the specified process has executed
+ an exec or exit, allowing the vfork parent to resume execution.
+
+fork-events and vfork-events features in qSupported
+ The qSupported packet allows GDB to request support for fork and
+ vfork events using new 'gdbfeatures' fork-events and vfork-events,
+ and the qSupported response can contain the corresponding
+ 'stubfeatures'. Set and show commands can be used to display
+ whether these features are enabled.
+
+* Extended-remote fork events
+
+ ** GDB now has support for fork events on extended-remote Linux
+ targets. For targets with Linux kernels 2.5.60 and later, this
+ enables follow-fork-mode and detach-on-fork for both fork and
+ vfork, as well as fork and vfork catchpoints.
+
+* The info record command now shows the recording format and the
+ branch tracing configuration for the current thread when using
+ the btrace record target.
+ For the BTS format, it shows the ring buffer size.
+
+* GDB now has support for DTrace USDT (Userland Static Defined
+ Tracing) probes. The supported targets are x86_64-*-linux-gnu.
+
+* GDB now supports access to vector registers on S/390 GNU/Linux
+ targets.
+
+* Removed command line options
+
+-xdb HP-UX XDB compatibility mode.
+
+* Removed targets and native configurations
+
+HP/PA running HP-UX hppa*-*-hpux*
+Itanium running HP-UX ia64-*-hpux*
+
+* New configure options
+
+--with-intel-pt
+ This configure option allows the user to build GDB with support for
+ Intel Processor Trace (default: auto). This requires libipt.
+
+--with-libipt-prefix=PATH
+ Specify the path to the version of libipt that GDB should use.
+ $PATH/include should contain the intel-pt.h header and
+ $PATH/lib should contain the libipt.so library.
+
+*** Changes in GDB 7.9.1
+
+* Python Scripting
+
+ ** Xmethods can now specify a result type.
+
+*** Changes in GDB 7.9
* GDB now supports hardware watchpoints on x86 GNU Hurd.
* New commands
+demangle [-l language] [--] name
+ Demangle "name" in the specified language, or the current language
+ if elided. This command is renamed from the "maint demangle" command.
+ The latter is kept as a no-op to avoid "maint demangle" being interpreted
+ as "maint demangler-warning".
+
queue-signal signal-name-or-number
Queue a signal to be delivered to the thread when it is resumed.
maint print user-registers
List all currently available "user" registers.
-maint print symbol-cache
- Print the contents of the symbol cache.
-
-maint print symbol-cache-statistics
- Print statistics of symbol cache usage.
-
-maint flush-symbol-cache
- Flush the contents of the symbol cache.
-
compile code [-r|-raw] [--] [source code]
Compile, inject, and execute in the inferior the executable object
code produced by compiling the provided source code.
show debug symbol-lookup
Control display of debugging info regarding symbol lookup.
-maint set symbol-cache-size
-maint show symbol-cache-size
- Control the size of the symbol cache.
-
* MI changes
** The -list-thread-groups command outputs an exit-code field for
can be used to launch native programs even when "set
auto-connect-native-target" is set to off.
-* GDB now supports access to Intel(R) MPX registers on GNU/Linux.
+* GDB now supports access to Intel MPX registers on GNU/Linux.
-* Support for Intel(R) AVX-512 registers on GNU/Linux.
- Support displaying and modifying Intel(R) AVX-512 registers
+* Support for Intel AVX-512 registers on GNU/Linux.
+ Support displaying and modifying Intel AVX-512 registers
$zmm0 - $zmm31 and $k0 - $k7 on GNU/Linux.
* New remote packets