What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 7.4
+*** Changes since GDB 7.6
+
+* New commands:
+maint set|show per-command
+maint set|show per-command space
+maint set|show per-command time
+maint set|show per-command symtab
+ Enable display of per-command gdb resource usage.
+
+* New options
+
+set remote trace-status-packet
+show remote trace-status-packet
+ Set/show the use of remote protocol qTStatus packet.
+
+* The command 'tsave' can now support new option '-ctf' to save trace
+ buffer in Common Trace Format.
+
+* MI changes
+
+ ** The -trace-save MI command can optionally save trace buffer in Common
+ Trace Format now.
+
+*** Changes in GDB 7.6
+
+* Target record has been renamed to record-full.
+ Record/replay is now enabled with the "record full" command.
+ This also affects settings that are associated with full record/replay
+ that have been moved from "set/show record" to "set/show record full":
+
+set|show record full insn-number-max
+set|show record full stop-at-limit
+set|show record full memory-query
+
+* A new record target "record-btrace" has been added. The new target
+ uses hardware support to record the control-flow of a process. It
+ does not support replaying the execution, but it implements the
+ below new commands for investigating the recorded execution log.
+ This new recording method can be enabled using:
+
+record btrace
+
+ The "record-btrace" target is only available on Intel Atom processors
+ and requires a Linux kernel 2.6.32 or later.
+
+* Two new commands have been added for record/replay to give information
+ about the recorded execution without having to replay the execution.
+ The commands are only supported by "record btrace".
+
+record instruction-history prints the execution history at
+ instruction granularity
+
+record function-call-history prints the execution history at
+ function granularity
+
+* New native configurations
+
+ARM AArch64 GNU/Linux aarch64*-*-linux-gnu
+FreeBSD/powerpc powerpc*-*-freebsd
+Tilera TILE-Gx GNU/Linux tilegx*-*-linux-gnu
+
+* New targets
+
+ARM AArch64 aarch64*-*-elf
+ARM AArch64 GNU/Linux aarch64*-*-linux
+Lynx 178 PowerPC powerpc-*-lynx*178
+x86_64/Cygwin x86_64-*-cygwin*
+Tilera TILE-Gx GNU/Linux tilegx*-*-linux
+
+* If the configured location of system.gdbinit file (as given by the
+ --with-system-gdbinit option at configure time) is in the
+ data-directory (as specified by --with-gdb-datadir at configure
+ time) or in one of its subdirectories, then GDB will look for the
+ system-wide init file in the directory specified by the
+ --data-directory command-line option.
+
+* New command line options:
+
+-nh Disables auto-loading of ~/.gdbinit, but still executes all the
+ other initialization files, unlike -nx which disables all of them.
+
+* Removed command line options
+
+-epoch This was used by the gdb mode in Epoch, an ancient fork of
+ Emacs.
+
+* The 'ptype' and 'whatis' commands now accept an argument to control
+ type formatting.
+
+* 'info proc' now works on some core files.
* Python scripting
+ ** Vectors can be created with gdb.Type.vector.
+
+ ** Python's atexit.register now works in GDB.
+
+ ** Types can be pretty-printed via a Python API.
+
+ ** Python 3 is now supported (in addition to Python 2.4 or later)
+
+ ** New class gdb.Architecture exposes GDB's internal representation
+ of architecture in the Python API.
+
+ ** New method Frame.architecture returns the gdb.Architecture object
+ corresponding to the frame's architecture.
+
+* New Python-based convenience functions:
+
+ ** $_memeq(buf1, buf2, length)
+ ** $_streq(str1, str2)
+ ** $_strlen(str)
+ ** $_regex(str, regex)
+
+* The 'cd' command now defaults to using '~' (the home directory) if not
+ given an argument.
+
+* The C++ ABI now defaults to the GNU v3 ABI. This has been the
+ default for GCC since November 2000.
+
+* The command 'forward-search' can now be abbreviated as 'fo'.
+
+* The command 'info tracepoints' can now display 'installed on target'
+ or 'not installed on target' for each non-pending location of tracepoint.
+
+* New configure options
+
+--enable-libmcheck/--disable-libmcheck
+ By default, development versions are built with -lmcheck on hosts
+ that support it, in order to help track memory corruption issues.
+ Release versions, on the other hand, are built without -lmcheck
+ by default. The --enable-libmcheck/--disable-libmcheck configure
+ options allow the user to override that default.
+
+* New commands (for set/show, see "New options" below)
+
+catch signal
+ Catch signals. This is similar to "handle", but allows commands and
+ conditions to be attached.
+
+maint info bfds
+ List the BFDs known to GDB.
+
+python-interactive [command]
+pi [command]
+ Start a Python interactive prompt, or evaluate the optional command
+ and print the result of expressions.
+
+py [command]
+ "py" is a new alias for "python".
+
+enable type-printer [name]...
+disable type-printer [name]...
+ Enable or disable type printers.
+
+* Removed commands
+
+ ** For the Renesas Super-H architecture, the "regs" command has been removed
+ (has been deprecated in GDB 7.5), and "info all-registers" should be used
+ instead.
+
+* New options
+
+set debug notification
+show debug notification
+ Control display of debugging info for async remote notification.
+
+set print type methods (on|off)
+show print type methods
+ Control whether method declarations are displayed by "ptype".
+ The default is to show them.
+
+set print type typedefs (on|off)
+show print type typedefs
+ Control whether typedef definitions are displayed by "ptype".
+ The default is to show them.
+
+set filename-display basename|relative|absolute
+show filename-display
+ Control the way in which filenames is displayed.
+ The default is "relative", which preserves previous behavior.
+
+set trace-buffer-size
+show trace-buffer-size
+ Request target to change the size of trace buffer.
+
+* MI changes
+
+ ** Command parameter changes are now notified using new async record
+ "=cmd-param-changed".
+ ** Trace frame changes caused by command "tfind" are now notified using
+ new async record "=traceframe-changed".
+ ** The creation, deletion and modification of trace state variables
+ are now notified using new async records "=tsv-created",
+ "=tsv-deleted" and "=tsv-modified".
+ ** The start and stop of process record are now notified using new
+ async record "=record-started" and "=record-stopped".
+ ** Memory changes are now notified using new async record
+ "=memory-changed".
+ ** The data-disassemble command response will include a "fullname" field
+ containing the absolute file name when GDB can determine it and source
+ has been requested.
+ ** New optional parameter COUNT added to the "-data-write-memory-bytes"
+ command, to allow pattern filling of memory areas.
+ ** New commands "-catch-load"/"-catch-unload" added for intercepting
+ library load/unload events.
+ ** The response to breakpoint commands and breakpoint async records
+ includes an "installed" field containing a boolean state about each
+ non-pending tracepoint location is whether installed on target or not.
+ ** Output of the "-trace-status" command includes a "trace-file" field
+ containing the name of the trace file being examined. This field is
+ optional, and only present when examining a trace file.
+
+* GDB now supports the "mini debuginfo" section, .gnu_debugdata.
+ You must have the LZMA library available when configuring GDB for this
+ feature to be enabled. For more information, see:
+ http://fedoraproject.org/wiki/Features/MiniDebugInfo
+
+* New remote packets
+
+QTBuffer:size
+ Set the size of trace buffer. The remote stub reports support for this
+ packet to gdb's qSupported query.
+
+*** Changes in GDB 7.5
+
+* GDB now supports x32 ABI. Visit <http://sites.google.com/site/x32abi/>
+ for more x32 ABI info.
+
+* GDB now supports access to MIPS DSP registers on Linux targets.
+
+* GDB now supports debugging microMIPS binaries.
+
+* The "info os" command on GNU/Linux can now display information on
+ several new classes of objects managed by the operating system:
+ "info os procgroups" lists process groups
+ "info os files" lists file descriptors
+ "info os sockets" lists internet-domain sockets
+ "info os shm" lists shared-memory regions
+ "info os semaphores" lists semaphores
+ "info os msg" lists message queues
+ "info os modules" lists loaded kernel modules
+
+* GDB now has support for SDT (Static Defined Tracing) probes. Currently,
+ the only implemented backend is for SystemTap probes (<sys/sdt.h>). You
+ can set a breakpoint using the new "-probe, "-pstap" or "-probe-stap"
+ options and inspect the probe arguments using the new $_probe_arg family
+ of convenience variables. You can obtain more information about SystemTap
+ in <http://sourceware.org/systemtap/>.
+
+* GDB now supports reversible debugging on ARM, it allows you to
+ debug basic ARM and THUMB instructions, and provides
+ record/replay support.
+
+* The option "symbol-reloading" has been deleted as it is no longer used.
+
+* Python scripting
+
+ ** GDB commands implemented in Python can now be put in command class
+ "gdb.COMMAND_USER".
+
** The "maint set python print-stack on|off" is now deleted.
+ ** A new class, gdb.printing.FlagEnumerationPrinter, can be used to
+ apply "flag enum"-style pretty-printing to any enum.
+
+ ** gdb.lookup_symbol can now work when there is no current frame.
+
+ ** gdb.Symbol now has a 'line' attribute, holding the line number in
+ the source at which the symbol was defined.
+
+ ** gdb.Symbol now has the new attribute 'needs_frame' and the new
+ method 'value'. The former indicates whether the symbol needs a
+ frame in order to compute its value, and the latter computes the
+ symbol's value.
+
+ ** A new method 'referenced_value' on gdb.Value objects which can
+ dereference pointer as well as C++ reference values.
+
+ ** New methods 'global_block' and 'static_block' on gdb.Symtab objects
+ which return the global and static blocks (as gdb.Block objects),
+ of the underlying symbol table, respectively.
+
+ ** New function gdb.find_pc_line which returns the gdb.Symtab_and_line
+ object associated with a PC value.
+
+ ** gdb.Symtab_and_line has new attribute 'last' which holds the end
+ of the address range occupied by code for the current source line.
+
+* Go language support.
+ GDB now supports debugging programs written in the Go programming
+ language.
+
* GDBserver now supports stdio connections.
E.g. (gdb) target remote | ssh myhost gdbserver - hello
(gdb) print (enum E) 3
$1 = (ONE | TWO)
-* Python scripting
+* The filename part of a linespec will now match trailing components
+ of a source file name. For example, "break gcc/expr.c:1000" will
+ now set a breakpoint in build/gcc/expr.c, but not
+ build/libcpp/expr.c.
- ** A new class, gdb.printing.FlagEnumerationPrinter, can be used to
- apply "flag enum"-style pretty-printing to any enum.
+* The "info proc" and "generate-core-file" commands will now also
+ work on remote targets connected to GDBserver on Linux.
+
+* The command "info catch" has been removed. It has been disabled
+ since December 2007.
+
+* The "catch exception" and "catch assert" commands now accept
+ a condition at the end of the command, much like the "break"
+ command does. For instance:
+
+ (gdb) catch exception Constraint_Error if Barrier = True
+
+ Previously, it was possible to add a condition to such catchpoints,
+ but it had to be done as a second step, after the catchpoint had been
+ created, using the "condition" command.
+
+* The "info static-tracepoint-marker" command will now also work on
+ native Linux targets with in-process agent.
+
+* GDB can now set breakpoints on inlined functions.
+
+* The .gdb_index section has been updated to include symbols for
+ inlined functions. GDB will ignore older .gdb_index sections by
+ default, which could cause symbol files to be loaded more slowly
+ until their .gdb_index sections can be recreated. The new command
+ "set use-deprecated-index-sections on" will cause GDB to use any older
+ .gdb_index sections it finds. This will restore performance, but the
+ ability to set breakpoints on inlined functions will be lost in symbol
+ files with older .gdb_index sections.
+
+ The .gdb_index section has also been updated to record more information
+ about each symbol. This speeds up the "info variables", "info functions"
+ and "info types" commands when used with programs having the .gdb_index
+ section, as well as speeding up debugging with shared libraries using
+ the .gdb_index section.
+
+* Ada support for GDB/MI Variable Objects has been added.
+
+* GDB can now support 'breakpoint always-inserted mode' in 'record'
+ target.
+
+* MI changes
+
+ ** New command -info-os is the MI equivalent of "info os".
+
+ ** Output logs ("set logging" and related) now include MI output.
+
+* New commands
+
+ ** "set use-deprecated-index-sections on|off"
+ "show use-deprecated-index-sections on|off"
+ Controls the use of deprecated .gdb_index sections.
+
+ ** "catch load" and "catch unload" can be used to stop when a shared
+ library is loaded or unloaded, respectively.
+
+ ** "enable count" can be used to auto-disable a breakpoint after
+ several hits.
+
+ ** "info vtbl" can be used to show the virtual method tables for
+ C++ and Java objects.
+
+ ** "explore" and its sub commands "explore value" and "explore type"
+ can be used to reccursively explore values and types of
+ expressions. These commands are available only if GDB is
+ configured with '--with-python'.
+
+ ** "info auto-load" shows status of all kinds of auto-loaded files,
+ "info auto-load gdb-scripts" shows status of auto-loading GDB canned
+ sequences of commands files, "info auto-load python-scripts"
+ shows status of auto-loading Python script files,
+ "info auto-load local-gdbinit" shows status of loading init file
+ (.gdbinit) from current directory and "info auto-load libthread-db" shows
+ status of inferior specific thread debugging shared library loading.
+
+ ** "info auto-load-scripts", "set auto-load-scripts on|off"
+ and "show auto-load-scripts" commands have been deprecated, use their
+ "info auto-load python-scripts", "set auto-load python-scripts on|off"
+ and "show auto-load python-scripts" counterparts instead.
+
+ ** "dprintf location,format,args..." creates a dynamic printf, which
+ is basically a breakpoint that does a printf and immediately
+ resumes your program's execution, so it is like a printf that you
+ can insert dynamically at runtime instead of at compiletime.
+
+ ** "set print symbol"
+ "show print symbol"
+ Controls whether GDB attempts to display the symbol, if any,
+ corresponding to addresses it prints. This defaults to "on", but
+ you can set it to "off" to restore GDB's previous behavior.
+
+* Deprecated commands
+
+ ** For the Renesas Super-H architecture, the "regs" command has been
+ deprecated, and "info all-registers" should be used instead.
+
+* New targets
+
+Renesas RL78 rl78-*-elf
+HP OpenVMS ia64 ia64-hp-openvms*
+
+* GDBserver supports evaluation of breakpoint conditions. When
+ support is advertised by GDBserver, GDB may be told to send the
+ breakpoint conditions in bytecode form to GDBserver. GDBserver
+ will only report the breakpoint trigger to GDB when its condition
+ evaluates to true.
+
+* New options
+
+set mips compression
+show mips compression
+ Select the compressed ISA encoding used in functions that have no symbol
+ information available. The encoding can be set to either of:
+ mips16
+ micromips
+ and is updated automatically from ELF file flags if available.
+
+set breakpoint condition-evaluation
+show breakpoint condition-evaluation
+ Control whether breakpoint conditions are evaluated by GDB ("host") or by
+ GDBserver ("target"). Default option "auto" chooses the most efficient
+ available mode.
+ This option can improve debugger efficiency depending on the speed of the
+ target.
+
+set auto-load off
+ Disable auto-loading globally.
+
+show auto-load
+ Show auto-loading setting of all kinds of auto-loaded files.
+
+set auto-load gdb-scripts on|off
+show auto-load gdb-scripts
+ Control auto-loading of GDB canned sequences of commands files.
+
+set auto-load python-scripts on|off
+show auto-load python-scripts
+ Control auto-loading of Python script files.
+
+set auto-load local-gdbinit on|off
+show auto-load local-gdbinit
+ Control loading of init file (.gdbinit) from current directory.
+
+set auto-load libthread-db on|off
+show auto-load libthread-db
+ Control auto-loading of inferior specific thread debugging shared library.
+
+set auto-load scripts-directory <dir1>[:<dir2>...]
+show auto-load scripts-directory
+ Set a list of directories from which to load auto-loaded scripts.
+ Automatically loaded Python scripts and GDB scripts are located in one
+ of the directories listed by this option.
+ The delimiter (':' above) may differ according to the host platform.
+
+set auto-load safe-path <dir1>[:<dir2>...]
+show auto-load safe-path
+ Set a list of directories from which it is safe to auto-load files.
+ The delimiter (':' above) may differ according to the host platform.
+
+set debug auto-load on|off
+show debug auto-load
+ Control display of debugging info for auto-loading the files above.
+
+set dprintf-style gdb|call|agent
+show dprintf-style
+ Control the way in which a dynamic printf is performed; "gdb"
+ requests a GDB printf command, while "call" causes dprintf to call a
+ function in the inferior. "agent" requests that the target agent
+ (such as GDBserver) do the printing.
+
+set dprintf-function <expr>
+show dprintf-function
+set dprintf-channel <expr>
+show dprintf-channel
+ Set the function and optional first argument to the call when using
+ the "call" style of dynamic printf.
+
+set disconnected-dprintf on|off
+show disconnected-dprintf
+ Control whether agent-style dynamic printfs continue to be in effect
+ after GDB disconnects.
+
+* New configure options
+
+--with-auto-load-dir
+ Configure default value for the 'set auto-load scripts-directory'
+ setting above. It defaults to '$debugdir:$datadir/auto-load',
+ $debugdir representing global debugging info directories (available
+ via 'show debug-file-directory') and $datadir representing GDB's data
+ directory (available via 'show data-directory').
+
+--with-auto-load-safe-path
+ Configure default value for the 'set auto-load safe-path' setting
+ above. It defaults to the --with-auto-load-dir setting.
+
+--without-auto-load-safe-path
+ Set 'set auto-load safe-path' to '/', effectively disabling this
+ security feature.
+
+* New remote packets
+
+z0/z1 conditional breakpoints extension
+
+ The z0/z1 breakpoint insertion packets have been extended to carry
+ a list of conditional expressions over to the remote stub depending on the
+ condition evaluation mode. The use of this extension can be controlled
+ via the "set remote conditional-breakpoints-packet" command.
+
+QProgramSignals:
+
+ Specify the signals which the remote stub may pass to the debugged
+ program without GDB involvement.
+
+* New command line options
+
+--init-command=FILE, -ix Like --command, -x but execute it
+ before loading inferior.
+--init-eval-command=COMMAND, -iex Like --eval-command=COMMAND, -ex but
+ execute it before loading inferior.
*** Changes in GDB 7.4
* New options
+set debug dwarf2-read
+show debug dwarf2-read
+ Turns on or off display of debugging messages related to reading
+ DWARF debug info. The default is off.
+
+set debug symtab-create
+show debug symtab-create
+ Turns on or off display of debugging messages related to symbol table
+ creation. The default is off.
+
set extended-prompt
show extended-prompt
Set the GDB prompt, and allow escape sequences to be inserted to