What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 7.2
+*** Changes since GDB 7.3
+
+* 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.
+
+* 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.
+
+* 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.
+
+* New remote packets
+
+QTEnable
+
+ Dynamically enable a tracepoint in a started trace experiment.
+
+QTDisable
+
+ Dynamically disable a tracepoint in a started trace experiment.
+
+*** 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
+
+-data-directory DIR Specify DIR as the "data-directory".
+ This is mostly for testing purposes.
+
+* The "maint set python auto-load on|off" command has been renamed to
+ "set auto-load-scripts on|off".
+
+* GDB has a new command: "set directories".
+ 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
result = some_value (10,20)
+ ** Module gdb.types has been added.
+ It contains a collection of utilities for working with gdb.Types objects:
+ get_basic_type, has_field, make_enum_dict.
+
+ ** Module gdb.printing has been added.
+ It contains utilities for writing and registering pretty-printers.
+ New classes: PrettyPrinter, SubPrettyPrinter,
+ RegexpCollectionPrettyPrinter.
+ New function: register_pretty_printer.
+
+ ** New commands "info pretty-printers", "enable pretty-printer" and
+ "disable pretty-printer" have been added.
+
+ ** 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
feature requires proper debuginfo support from the compiler; it
was added to GCC 4.5.
+ ** The motion commands "next", "finish", "until", and "advance" now
+ work better when exceptions are thrown. In particular, GDB will
+ no longer lose control of the inferior; instead, the GDB will
+ stop the inferior at the point at which the exception is caught.
+ This functionality requires a change in the exception handling
+ code that was introduced in GCC 4.5.
+
+* GDB now follows GCC's rules on accessing volatile objects when
+ reading or writing target state during expression evaluation.
+ One notable difference to prior behavior is that "print x = 0"
+ no longer generates a read of x; the value of the assignment is
+ now always taken directly from the value being assigned.
+
* GDB now has some support for using labels in the program's source in
linespecs. For instance, you can use "advance label" to continue
execution to a label.
expression. Such a watchpoint is never deleted due to it going out
of scope.
+* GDB now supports thread debugging of core dumps on GNU/Linux.
+
+ GDB now activates thread debugging using the libthread_db library
+ when debugging GNU/Linux core dumps, similarly to when debugging
+ live processes. As a result, when debugging a core dump file, GDB
+ is now able to display pthread_t ids of threads. For example, "info
+ threads" shows the same output as when debugging the process when it
+ was live. In earlier releases, you'd see something like this:
+
+ (gdb) info threads
+ * 1 LWP 6780 main () at main.c:10
+
+ While now you see this:
+
+ (gdb) info threads
+ * 1 Thread 0x7f0f5712a700 (LWP 6780) main () at main.c:10
+
+ It is also now possible to inspect TLS variables when debugging core
+ dumps.
+
+ When debugging a core dump generated on a machine other than the one
+ used to run GDB, you may need to point GDB at the correct
+ 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-*
+
+* Ada task switching is now supported on sparc-elf targets when
+ debugging a program using the Ravenscar Profile. For more information,
+ see the "Tasking Support when using the Ravenscar Profile" section
+ in the GDB user manual.
+
+* Guile support was removed.
+
+* New features in the GNU simulator
+
+ ** 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