What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 7.2
+*** Changes since GDB 7.3.1
+
+* GDB now allows you to skip uninteresting functions and files when
+ stepping with the "skip function" and "skip file" commands.
+
+* GDB has two new commands: "set remote hardware-watchpoint-length-limit"
+ and "show remote hardware-watchpoint-length-limit". These allows to
+ set or show the maximum length limit (in bytes) of a remote
+ target hardware watchpoint.
+
+ This allows e.g. to use "unlimited" hardware watchpoints with the
+ gdbserver integrated in Valgrind version >= 3.7.0. Such Valgrind
+ watchpoints are slower than real hardware watchpoints but are
+ significantly faster than gdb software watchpoints.
+
+* Python scripting
+
+ ** The register_pretty_printer function in module gdb.printing now takes
+ an optional `replace' argument. If True, the new printer replaces any
+ existing one.
+
+ ** The "maint set python print-stack on|off" command has been
+ deprecated, and a new command: "set python print-stack on|off" has
+ replaced it. Additionally, the default for "print-stack" is now
+ "off".
+
+ ** A prompt substitution hook (prompt_hook) is now available to the
+ Python API.
+
+ ** A new Python module, gdb.prompt has been added to the GDB Python
+ modules library. This module provides functionality for
+ escape sequences in prompts (used by set/show
+ extended-prompt). These escape sequences are replaced by their
+ corresponding value.
+
+ ** Python commands and convenience-functions located in
+ 'data-directory'/python/gdb/command and
+ 'data-directory'/python/gdb/function are now automatically loaded
+ on GDB start-up.
+
+ ** Blocks now provide four new attributes. global_block and
+ static_block will return the global and static blocks
+ respectively. is_static and is_global are boolean attributes
+ that indicate if the block is one of those two types.
+
+ ** Symbols now provide the "type" attribute, the type of the symbol.
+
+ ** The "gdb.breakpoint" function has been deprecated in favor of
+ "gdb.breakpoints".
+
+ ** Type objects for struct and union types now allow access to
+ the fields using standard Python dictionary (mapping) methods.
+ For example, "some_type['myfield']" now works, as does
+ "some_type.items()".
+
+ ** A new event "gdb.new_objfile" has been added, triggered by loading a
+ new object file.
+
+ ** A new function, "deep_items" has been added to the gdb.types
+ module in the GDB Python modules library. This function returns
+ an iterator over the fields of a struct or union type. Unlike
+ the standard Python "iteritems" method, it will recursively traverse
+ any anonymous fields.
+
+* libthread-db-search-path now supports two special values: $sdir and $pdir.
+ $sdir specifies the default system locations of shared libraries.
+ $pdir specifies the directory where the libpthread used by the application
+ lives.
+
+ GDB no longer looks in $sdir and $pdir after it has searched the directories
+ mentioned in libthread-db-search-path. If you want to search those
+ directories, they must be specified in libthread-db-search-path.
+ The default value of libthread-db-search-path on GNU/Linux and Solaris
+ systems is now "$sdir:$pdir".
+
+ $pdir is not supported by gdbserver, it is currently ignored.
+ $sdir is supported by gdbserver.
+
+* New configure option --with-iconv-bin.
+ When using the internationalization support like the one in the GNU C
+ library, GDB will invoke the "iconv" program to get a list of supported
+ character sets. If this program lives in a non-standard location, one can
+ use this option to specify where to find it.
+
+* When natively debugging programs on PowerPC BookE processors running
+ a Linux kernel version 2.6.34 or later, GDB supports masked hardware
+ watchpoints, which specify a mask in addition to an address to watch.
+ The mask specifies that some bits of an address (the bits which are
+ reset in the mask) should be ignored when matching the address accessed
+ by the inferior against the watchpoint address. See the "PowerPC Embedded"
+ section in the user manual for more details.
+
+* The new option --once causes GDBserver to stop listening for connections once
+ the first connection is made. The listening port used by GDBserver will
+ become available after that.
+
+* New commands "info macros" and "alias" have been added.
+
+* New function parameters suffix @entry specifies value of function parameter
+ at the time the function got called. Entry values are available only since
+ gcc version 4.7.
+
+* New commands
+
+!SHELL COMMAND
+ "!" is now an alias of the "shell" command.
+ Note that no space is needed between "!" and SHELL COMMAND.
+
+* Changed commands
+
+watch EXPRESSION mask MASK_VALUE
+ The watch command now supports the mask argument which allows creation
+ of masked watchpoints, if the current architecture supports this feature.
+
+info auto-load-scripts [REGEXP]
+ This command was formerly named "maintenance print section-scripts".
+ It is now generally useful and is no longer a maintenance-only command.
+
+info macro [-all] [--] MACRO
+ The info macro command has new options `-all' and `--'. The first for
+ printing all definitions of a macro. The second for explicitly specifying
+ the end of arguments and the beginning of the macro name in case the macro
+ name starts with a hyphen.
+
+collect[/s] EXPRESSIONS
+ The tracepoint collect command now takes an optional modifier "/s"
+ that directs it to dereference pointer-to-character types and
+ collect the bytes of memory up to a zero byte. The behavior is
+ similar to what you see when you use the regular print command on a
+ string. An optional integer following the "/s" sets a bound on the
+ number of bytes that will be collected.
+
+tstart [NOTES]
+ The trace start command now interprets any supplied arguments as a
+ note to be recorded with the trace run, with an effect similar to
+ setting the variable trace-notes.
+
+tstop [NOTES]
+ The trace stop command now interprets any arguments as a note to be
+ mentioned along with the tstatus report that the trace was stopped
+ with a command. The effect is similar to setting the variable
+ trace-stop-notes.
+
+* Tracepoints can now be enabled and disabled at any time after a trace
+ experiment has been started using the standard "enable" and "disable"
+ commands. It is now possible to start a trace experiment with no enabled
+ tracepoints; GDB will display a warning, but will allow the experiment to
+ begin, assuming that tracepoints will be enabled as needed while the trace
+ is running.
+
+* Fast tracepoints on 32-bit x86-architectures can now be placed at
+ locations with 4-byte instructions, when they were previously
+ limited to locations with instructions of 5 bytes or longer.
+
+* New options
+
+set extended-prompt
+show extended-prompt
+ Set the GDB prompt, and allow escape sequences to be inserted to
+ display miscellaneous information (see 'help set extended-prompt'
+ for the list of sequences). This prompt (and any information
+ accessed through the escape sequences) is updated every time the
+ prompt is displayed.
+
+set print entry-values (both|compact|default|if-needed|no|only|preferred)
+show print entry-values
+ Set printing of frame argument values at function entry. In some cases
+ GDB can determine the value of function argument which was passed by the
+ function caller, even if the value was modified inside the called function.
+
+set debug entry-values
+show debug entry-values
+ Control display of debugging info for determining frame argument values at
+ function entry and virtual tail call frames.
+
+set basenames-may-differ
+show basenames-may-differ
+ Set whether a source file may have multiple base names.
+ (A "base name" is the name of a file with the directory part removed.
+ Example: The base name of "/home/user/hello.c" is "hello.c".)
+ If set, GDB will canonicalize file names (e.g., expand symlinks)
+ before comparing them. Canonicalization is an expensive operation,
+ but it allows the same file be known by more than one base name.
+ If not set (the default), all source files are assumed to have just
+ one base name, and gdb will do file name comparisons more efficiently.
+
+set trace-user
+show trace-user
+set trace-notes
+show trace-notes
+ Set a user name and notes for the current and any future trace runs.
+ This is useful for long-running and/or disconnected traces, to
+ inform others (or yourself) as to who is running the trace, supply
+ contact information, or otherwise explain what is going on.
+
+set trace-stop-notes
+show trace-stop-notes
+ Set a note attached to the trace run, that is displayed when the
+ trace has been stopped by a tstop command. This is useful for
+ instance as an explanation, if you are stopping a trace run that was
+ started by someone else.
+
+* New remote packets
+
+QTEnable
+
+ Dynamically enable a tracepoint in a started trace experiment.
+
+QTDisable
+
+ Dynamically disable a tracepoint in a started trace experiment.
+
+QTNotes
+
+ Set the user and notes of the trace run.
+
+qTP
+
+ Query the current status of a tracepoint.
+
+qTMinFTPILen
+
+ Query the minimum length of instruction at which a fast tracepoint may
+ be placed.
+
+* Dcache size (number of lines) and line-size are now runtime-configurable
+ via "set dcache line" and "set dcache line-size" commands.
+
+* New targets
+
+Texas Instruments TMS320C6x tic6x-*-*
+
+* New Simulators
+
+Renesas RL78 rl78-*-elf
+
+*** Changes in GDB 7.3.1
+
+* The build failure for NetBSD and OpenBSD targets have now been fixed.
+
+*** Changes in GDB 7.3
+
+* GDB has a new command: "thread find [REGEXP]".
+ It finds the thread id whose name, target id, or thread extra info
+ matches the given regular expression.
+
+* The "catch syscall" command now works on mips*-linux* targets.
+
+* The -data-disassemble MI command now supports modes 2 and 3 for
+ dumping the instruction opcodes.
* New command line options
It is like the "dir" command except that it replaces the
source path list instead of augmenting it.
+* GDB now understands thread names.
+
+ On GNU/Linux, "info threads" will display the thread name as set by
+ prctl or pthread_setname_np.
+
+ There is also a new command, "thread name", which can be used to
+ assign a name internally for GDB to display.
+
* OpenCL C
Initial support for the OpenCL C language (http://www.khronos.org/opencl)
has been integrated into GDB.
* Python scripting
+ ** The function gdb.Write now accepts an optional keyword 'stream'.
+ This keyword, when provided, will direct the output to either
+ stdout, stderr, or GDB's logging output.
+
+ ** Parameters can now be be sub-classed in Python, and in particular
+ you may implement the get_set_doc and get_show_doc functions.
+ This improves how Parameter set/show documentation is processed
+ and allows for more dynamic content.
+
+ ** Symbols, Symbol Table, Symbol Table and Line, Object Files,
+ Inferior, Inferior Thread, Blocks, and Block Iterator APIs now
+ have an is_valid method.
+
+ ** Breakpoints can now be sub-classed in Python, and in particular
+ you may implement a 'stop' function that is executed each time
+ the inferior reaches that breakpoint.
+
+ ** New function gdb.lookup_global_symbol looks up a global symbol.
+
** GDB values in Python are now callable if the value represents a
function. For example, if 'some_value' represents a function that
takes two integer parameters and returns a value, you can call
** gdb.parameter("directories") is now available.
+ ** New function gdb.newest_frame returns the newest frame in the
+ selected thread.
+
+ ** The gdb.InferiorThread class has a new "name" attribute. This
+ holds the thread's name.
+
+ ** Python Support for Inferior events.
+ Python scripts can add observers to be notified of events
+ occurring in the process being debugged.
+ The following events are currently supported:
+ - gdb.events.cont Continue event.
+ - gdb.events.exited Inferior exited event.
+ - gdb.events.stop Signal received, and Breakpoint hit events.
+
* C++ Improvements:
** GDB now puts template parameters in scope when debugging in an
libthread_db library with the "set libthread-db-search-path"
command. See the user manual for more details on this command.
+* When natively debugging programs on PowerPC BookE processors running
+ a Linux kernel version 2.6.34 or later, GDB supports ranged breakpoints,
+ which stop execution of the inferior whenever it executes an instruction
+ at any address within the specified range. See the "PowerPC Embedded"
+ section in the user manual for more details.
+
* New features in the GDB remote stub, GDBserver
** GDBserver is now supported on PowerPC LynxOS (versions 4.x and 5.x),
and i686 LynxOS (version 5.x).
+ ** GDBserver is now supported on Blackfin Linux.
+
+* New native configurations
+
+ia64 HP-UX ia64-*-hpux*
+
* New targets:
Analog Devices, Inc. Blackfin Processor bfin-*
** The --map-info flag lists all known core mappings.
+ ** CFI flashes may be simulated via the "cfi" device.
+
*** Changes in GDB 7.2
* Shared library support for remote targets by default