2011-03-31 Thiago Jung Bauermann <bauerman@br.ibm.com>
[deliverable/binutils-gdb.git] / gdb / NEWS
index 0fcf2b5857ecef46943cd3dfac58b1c38888f577..8692e2f7c74f0d4d2a614d2a8f99efd88a53d371 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,7 +1,238 @@
                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
+
+  ** 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
+     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 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
+     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.
+
+* 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
+
+  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 +371,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 +401,63 @@ 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.
@@ -84,6 +471,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
@@ -379,8 +785,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
 
@@ -472,9 +879,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.047942 seconds and 4 git commands to generate.