2011-02-15 Michael Snyder <msnyder@vmware.com>
[deliverable/binutils-gdb.git] / gdb / NEWS
index cbdfa742d4200b98e0b88fd46ea56995247bec32..a07d32dc8fd88d2baef0a63bfee4119db6c66b34 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,7 +1,219 @@
                What has changed in GDB?
             (Organized release by release)
 
-*** Changes since GDB 7.1
+*** Changes since GDB 7.2
+
+* 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
+
+  ** 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
+     that function like so:
+
+     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 the in 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.
+
+  ** Python Support for Inferior events.
+     Python scripts can add observers to be notified of events
+     occurring the in 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
+     instantiation.  For example, if you have:
+
+     template<int X> int func (void) { return X; }
+
+     then if you step into func<5>, "print X" will show "5".  This
+     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.
+
+* GDB now has support for reading and writing a new .gdb_index
+  section.  This section holds a fast index of DWARF debugging
+  information and can be used to greatly speed up GDB startup and
+  operation.  See the documentation for `save gdb-index' for details.
+
+* The "watch" command now accepts an optional "-location" argument.
+  When used, this causes GDB to watch the memory referred to by the
+  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.
+
+* 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.
+
+*** Changes in GDB 7.2
+
+* Shared library support for remote targets by default
+
+  When GDB is configured for a generic, non-OS specific target, like
+  for example, --target=arm-eabi or one of the many *-*-elf targets,
+  GDB now queries remote stubs for loaded shared libraries using the
+  `qXfer:libraries:read' packet.  Previously, shared library support
+  was always disabled for such configurations.
+
+* C++ Improvements:
+
+  ** Argument Dependent Lookup (ADL)
+
+  In C++ ADL lookup directs function search to the namespaces of its
+  arguments even if the namespace has not been imported.
+  For example:
+    namespace A
+      { 
+        class B { }; 
+        void foo (B) { }
+      }
+    ...
+    A::B b
+    foo(b)
+  Here the compiler will search for `foo' in the namespace of 'b'
+  and find A::foo.  GDB now supports this.  This construct is commonly
+  used in the Standard Template Library for operators.
+
+  ** Improved User Defined Operator Support
+
+  In addition to member operators, GDB now supports lookup of operators
+  defined in a namespace and imported with a `using' directive, operators
+  defined in the global scope, operators imported implicitly from an
+  anonymous namespace, and the ADL operators mentioned in the previous
+  entry.
+  GDB now also supports proper overload resolution for all the previously
+  mentioned flavors of operators.
+
+  ** static const class members
+
+  Printing of static const class members that are initialized in the
+  class definition has been fixed.
 
 * Windows Thread Information Block access.
 
   thread-specific pointer to the TIB.  This feature is also supported
   when remote debugging using GDBserver.
 
+* Static tracepoints
+
+  Static tracepoints are calls in the user program into a tracing
+  library.  One such library is a port of the LTTng kernel tracer to
+  userspace --- UST (LTTng Userspace Tracer, http://lttng.org/ust).
+  When debugging with GDBserver, GDB now supports combining the GDB
+  tracepoint machinery with such libraries.  For example: the user can
+  use GDB to probe a static tracepoint marker (a call from the user
+  program into the tracing library) with the new "strace" command (see
+  "New commands" below).  This creates a "static tracepoint" in the
+  breakpoint list, that can be manipulated with the same feature set
+  as fast and regular tracepoints.  E.g., collect registers, local and
+  global variables, collect trace state variables, and define
+  tracepoint conditions.  In addition, the user can collect extra
+  static tracepoint marker specific data, by collecting the new
+  $_sdata internal variable.  When analyzing the trace buffer, you can
+  inspect $_sdata like any other variable available to GDB.  For more
+  information, see the "Tracepoints" chapter in GDB user manual.  New
+  remote packets have been defined to support static tracepoints, see
+  the "New remote packets" section below.
+
+* Better reconstruction of tracepoints after disconnected tracing
+
+  GDB will attempt to download the original source form of tracepoint
+  definitions when starting a trace run, and then will upload these
+  upon reconnection to the target, resulting in a more accurate
+  reconstruction of the tracepoints that are in use on the target.
+
+* Observer mode
+
+  You can now exercise direct control over the ways that GDB can
+  affect your program.  For instance, you can disallow the setting of
+  breakpoints, so that the program can run continuously (assuming
+  non-stop mode).  In addition, the "observer" variable is available
+  to switch all of the different controls; in observer mode, GDB
+  cannot affect the target's behavior at all, which is useful for
+  tasks like diagnosing live systems in the field.
+
+* The new convenience variable $_thread holds the number of the
+  current thread.
+
 * New remote packets
 
 qGetTIBAddr
 
   Return the address of the Windows Thread Information Block of a given thread.
 
+qRelocInsn
+
+  In response to several of the tracepoint packets, the target may now
+  also respond with a number of intermediate `qRelocInsn' request
+  packets before the final result packet, to have GDB handle
+  relocating an instruction to execute at a different address.  This
+  is particularly useful for stubs that support fast tracepoints.  GDB
+  reports support for this feature in the qSupported packet.
+
+qTfSTM, qTsSTM
+
+  List static tracepoint markers in the target program.
+
+qTSTMat
+
+  List static tracepoint markers at a given address in the target
+  program.
+
+qXfer:statictrace:read
+
+  Read the static trace data collected (by a `collect $_sdata'
+  tracepoint action).  The remote stub reports support for this packet
+  to gdb's qSupported query.
+
+QAllow
+
+  Send the current settings of GDB's permission flags.
+
+QTDPsrc
+
+  Send part of the source (textual) form of a tracepoint definition,
+  which includes location, conditional, and action list.
+
 * The source command now accepts a -s option to force searching for the
   script in the source search path even if the script name specifies
   a directory.
 
 * New features in the GDB remote stub, GDBserver
 
-  - GDBserver now support tracepoints.  The feature is currently
-    supported by the i386-linux and amd64-linux builds.
+  - GDBserver now support tracepoints (including fast tracepoints, and
+    static tracepoints).  The feature is currently supported by the
+    i386-linux and amd64-linux builds.  See the "Tracepoints support
+    in gdbserver" section in the manual for more information.
+
+    GDBserver JIT compiles the tracepoint's conditional agent
+    expression bytecode into native code whenever possible for low
+    overhead dynamic tracepoints conditionals.  For such tracepoints,
+    an expression that examines program state is evaluated when the
+    tracepoint is reached, in order to determine whether to capture
+    trace data.  If the condition is simple and false, processing the
+    tracepoint finishes very quickly and no data is gathered.
+
+    GDBserver interfaces with the UST (LTTng Userspace Tracer) library
+    for static tracepoints support.
+
+  - GDBserver now supports x86_64 Windows 64-bit debugging.
 
 * GDB now sends xmlRegisters= in qSupported packet to indicate that
   it understands register description.
@@ -51,8 +352,28 @@ qGetTIBAddr
   its argument, limiting the functions selected by the regex to those
   in the specified file.
 
+* Support for remote debugging Windows and SymbianOS shared libraries
+  from Unix hosts has been improved.  Non Windows GDB builds now can
+  understand target reported file names that follow MS-DOS based file
+  system semantics, such as file names that include drive letters and
+  use the backslash character as directory separator.  This makes it
+  possible to transparently use the "set sysroot" and "set
+  solib-search-path" on Unix hosts to point as host copies of the
+  target's shared libraries.  See the new command "set
+  target-file-system-kind" described below, and the "Commands to
+  specify files" section in the user manual for more information.
+
 * New commands
 
+eval template, expressions...
+  Convert the values of one or more expressions under the control
+  of the string template to a command line, and call it.
+
+set target-file-system-kind unix|dos-based|auto
+show target-file-system-kind
+  Set or show the assumed file system kind for target reported file
+  names.
+
 save breakpoints <filename>
   Save all current breakpoint definitions to a file suitable for use
   in a later debugging session.  To read the saved breakpoint
@@ -61,16 +382,67 @@ save breakpoints <filename>
 `save tracepoints' is a new alias for `save-tracepoints'.  The latter
 is now deprecated.
 
+info static-tracepoint-markers
+  Display information about static tracepoint markers in the target.
+
+strace FN | FILE:LINE | *ADDR | -m MARKER_ID
+  Define a static tracepoint by probing a marker at the given
+  function, line, address, or marker ID.
+
+set observer on|off
+show observer
+  Enable and disable observer mode.
+
+set may-write-registers on|off
+set may-write-memory on|off
+set may-insert-breakpoints on|off
+set may-insert-tracepoints on|off
+set may-insert-fast-tracepoints on|off
+set may-interrupt on|off
+  Set individual permissions for GDB effects on the target.  Note that
+  some of these settings can have undesirable or surprising
+  consequences, particularly when changed in the middle of a session.
+  For instance, disabling the writing of memory can prevent
+  breakpoints from being inserted, cause single-stepping to fail, or
+  even crash your program, if you disable after breakpoints have been
+  inserted.  However, GDB should not crash.
+
+set record memory-query on|off
+show record memory-query
+  Control whether to stop the inferior if memory changes caused
+  by an instruction cannot be recorded.
+
+* Changed commands
+
+disassemble
+  The disassemble command now supports "start,+length" form of two arguments.
+
 * Python scripting
 
+** GDB now provides a new directory location, called the python directory,
+   where Python scripts written for GDB can be installed.  The location
+   of that directory is <data-directory>/python, where <data-directory>
+   is the GDB data directory.  For more details, see section `Scripting
+   GDB using Python' in the manual.
+
 ** The GDB Python API now has access to breakpoints, symbols, symbol
-   tables, program spaces, and frame's code blocks.
+   tables, program spaces, inferiors, threads and frame's code blocks.
+   Additionally, GDB Parameters can now be created from the API, and
+   manipulated via set/show in the CLI.
 
 ** New functions gdb.target_charset, gdb.target_wide_charset,
-   gdb.progspaces, and gdb.current_progspace.
+   gdb.progspaces, gdb.current_progspace, and gdb.string_to_argv.
+
+** New exception gdb.GdbError.
 
 ** Pretty-printers are now also looked up in the current program space.
 
+** Pretty-printers can now be individually enabled and disabled.
+
+** GDB now looks for names of Python scripts to auto-load in a
+   special section named `.debug_gdb_scripts', in addition to looking
+   for a OBJFILE-gdb.py script when OBJFILE is read by the debugger.
+
 * Tracepoint actions were unified with breakpoint commands. In particular,
 there are no longer differences in "info break" output for breakpoints and
 tracepoints and the "commands" command can be used for both tracepoints and
@@ -80,6 +452,25 @@ regular breakpoints.
 
 ARM Symbian                    arm*-*-symbianelf*
 
+* D language support.
+  GDB now supports debugging programs written in the D programming
+  language.
+
+* GDB now supports the extended ptrace interface for PowerPC which is
+  available since Linux kernel version 2.6.34.  This automatically enables
+  any hardware breakpoints and additional hardware watchpoints available in
+  the processor.  The old ptrace interface exposes just one hardware
+  watchpoint and no hardware breakpoints.
+
+* GDB is now able to use the Data Value Compare (DVC) register available on
+  embedded PowerPC processors to implement in hardware simple watchpoint
+  conditions of the form:
+
+  watch ADDRESS|VARIABLE if ADDRESS|VARIABLE == CONSTANT EXPRESSION
+
+  This works in native GDB running on Linux kernels with the extended ptrace
+  interface mentioned above.
+
 *** Changes in GDB 7.1
 
 * C++ Improvements
@@ -375,8 +766,9 @@ or the "condition" command is available.  GDB sends the condition to
 the target for evaluation using the same bytecode format as is used
 for tracepoint actions.
 
-* "disassemble" command with a /r modifier, print the raw instructions
-in hex as well as in symbolic form.
+* The disassemble command now supports: an optional /r modifier, print the
+raw instructions in hex as well as in symbolic form, and an optional /m
+modifier to print mixed source+assembly.
 
 * Process record and replay
 
@@ -468,9 +860,6 @@ qXfer:siginfo:write
   packet that permited the stub to pass a process id was removed.
   Remote servers should use the `T' stop reply packet instead.
 
-* The "disassemble" command now supports an optional /m modifier to print mixed
-source+assembly.
-
 * GDB now supports multiple function calling conventions according to the
 DWARF-2 DW_AT_calling_convention function attribute.
   
This page took 0.029003 seconds and 4 git commands to generate.