2009-10-19 Michael Snyder <msnyder@vmware.com>
[deliverable/binutils-gdb.git] / gdb / NEWS
index 4602ffdc8ab008b45b19ffcd62c437079093f159..b95edba2131fc54d74ae5c9a9f8540c0f5432187 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,7 +1,159 @@
                What has changed in GDB?
             (Organized release by release)
 
-*** Changes since GDB 6.8
+*** Changes since GDB 7.0
+
+* New targets
+
+Xilinx MicroBlaze              microblaze-*-*
+
+* New Simulators
+
+Xilinx MicroBlaze              microblaze
+
+* Multi-program debugging.
+
+  GDB now has support for multi-program (a.k.a. multi-executable or
+  multi-exec) debugging.  This allows for debugging multiple inferiors
+  simultaneously each running a different program under the same GDB
+  session.  See "Debugging Multiple Inferiors and Programs" in the
+  manual for more information.  This implied some user visible changes
+  in the multi-inferior support.  For example, "info inferiors" now
+  lists inferiors that are not running yet or that have exited
+  already.  See also "New commands" and "New options" below.
+
+* New commands (for set/show, see "New options" below)
+
+add-inferior [-copies <N>] [-exec <FILENAME>]
+  Add a new inferior.
+
+clone-inferior [-copies <N>] [ID]
+  Make a new inferior ready to execute the same program another
+  inferior has loaded.
+
+remove-inferior ID
+  Remove an inferior.
+
+maint info program-spaces
+  List the program spaces loaded into GDB.
+
+* New options
+
+set follow-exec-mode new|same
+show follow-exec-mode
+  Control whether GDB reuses the same inferior across an exec call or
+  creates a new one.  This is useful to be able to restart the old
+  executable after the inferior having done an exec call.
+
+*** Changes in GDB 7.0
+
+* GDB now has an interface for JIT compilation.  Applications that
+dynamically generate code can create symbol files in memory and register
+them with GDB.  For users, the feature should work transparently, and
+for JIT developers, the interface is documented in the GDB manual in the
+"JIT Compilation Interface" chapter.
+
+* Tracepoints may now be conditional.  The syntax is as for
+breakpoints; either an "if" clause appended to the "trace" command,
+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."
+
+* Process record and replay
+
+  In a architecture environment that supports ``process record and
+  replay'', ``process record and replay'' target can record a log of
+  the process execution, and replay it with both forward and reverse
+  execute commands.
+
+* Reverse debugging: GDB now has new commands reverse-continue, reverse-
+step, reverse-next, reverse-finish, reverse-stepi, reverse-nexti, and
+set execution-direction {forward|reverse}, for targets that support
+reverse execution.
+
+* GDB now supports hardware watchpoints on MIPS/Linux systems.  This
+feature is available with a native GDB running on kernel version
+2.6.28 or later.
+
+* GDB now has support for multi-byte and wide character sets on the
+target.  Strings whose character type is wchar_t, char16_t, or
+char32_t are now correctly printed.  GDB supports wide- and unicode-
+literals in C, that is, L'x', L"string", u'x', u"string", U'x', and
+U"string" syntax.  And, GDB allows the "%ls" and "%lc" formats in
+`printf'.  This feature requires iconv to work properly; if your
+system does not have a working iconv, GDB can use GNU libiconv.  See
+the installation instructions for more information.
+
+* GDB now supports automatic retrieval of shared library files from
+remote targets.  To use this feature, specify a system root that begins
+with the `remote:' prefix, either via the `set sysroot' command or via
+the `--with-sysroot' configure-time option.
+
+* "info sharedlibrary" now takes an optional regex of libraries to show,
+and it now reports if a shared library has no debugging information.
+
+* Commands `set debug-file-directory', `set solib-search-path' and `set args'
+now complete on file names.
+
+* When completing in expressions, gdb will attempt to limit
+completions to allowable structure or union fields, where appropriate.
+For instance, consider:
+
+    # struct example { int f1; double f2; };
+    # struct example variable;
+    (gdb) p variable.
+
+If the user types TAB at the end of this command line, the available
+completions will be "f1" and "f2".
+
+* Inlined functions are now supported.  They show up in backtraces, and
+the "step", "next", and "finish" commands handle them automatically.
+
+* GDB now supports the token-splicing (##) and stringification (#)
+operators when expanding macros.  It also supports variable-arity
+macros.
+
+* GDB now supports inspecting extra signal information, exported by
+the new $_siginfo convenience variable.  The feature is currently
+implemented on linux ARM, i386 and amd64.
+
+* GDB can now display the VFP floating point registers and NEON vector
+registers on ARM targets.  Both ARM GNU/Linux native GDB and gdbserver
+can provide these registers (requires Linux 2.6.30 or later).  Remote
+and simulator targets may also provide them.
+
+* New remote packets
+
+qSearch:memory:
+  Search memory for a sequence of bytes.
+
+QStartNoAckMode
+  Turn off `+'/`-' protocol acknowledgments to permit more efficient
+  operation over reliable transport links.  Use of this packet is
+  controlled by the `set remote noack-packet' command.
+
+vKill
+  Kill the process with the specified process ID.  Use this in preference
+  to `k' when multiprocess protocol extensions are supported.
+
+qXfer:osdata:read
+  Obtains additional operating system information
+
+qXfer:siginfo:read
+qXfer:siginfo:write
+  Read or write additional signal information.
+
+* Removed remote protocol undocumented extension
+
+  An undocumented extension to the remote protocol's `S' stop reply
+  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.
@@ -15,6 +167,8 @@ with the --compress-debug-sections=zlib flag.
 
 * 64-bit core files are now supported on AIX.
 
+* Thread switching is now supported on Tru64.
+
 * Watchpoints can now be set on unreadable memory locations, e.g. addresses
 which will be allocated using malloc later in program execution.
 
@@ -25,16 +179,229 @@ list of section offsets.
 conditions handling signals delivered during attach or thread creation
 have also been fixed.
 
+* GDB now supports the use of DWARF boolean types for Ada's type Boolean.
+From the user's standpoint, all unqualified instances of True and False
+are treated as the standard definitions, regardless of context.
+
+* GDB now parses C++ symbol and type names more flexibly.  For
+example, given:
+
+   template<typename T> class C { };
+   C<char const *> c;
+
+GDB will now correctly handle all of:
+
+   ptype C<char const *>
+   ptype C<char const*>
+   ptype C<const char *>
+   ptype C<const char*>
+
 * New features in the GDB remote stub, gdbserver
 
   - The "--wrapper" command-line argument tells gdbserver to use a
   wrapper program to launch programs for debugging.
 
-* New commands
+  - On PowerPC and S/390 targets, it is now possible to use a single
+  gdbserver executable to debug both 32-bit and 64-bit programs.
+  (This requires gdbserver itself to be built as a 64-bit executable.)
+
+  - gdbserver uses the new noack protocol mode for TCP connections to
+  reduce communications latency, if also supported and enabled in GDB.
+
+  - Support for the sparc64-linux-gnu target is now included in
+  gdbserver.
 
-set debug timetstamp
+  - The amd64-linux build of gdbserver now supports debugging both
+    32-bit and 64-bit programs.
+
+  - The i386-linux, amd64-linux, and i386-win32 builds of gdbserver
+    now support hardware watchpoints, and will use them automatically
+    as appropriate.
+
+* Python scripting
+
+  GDB now has support for scripting using Python.  Whether this is
+  available is determined at configure time.
+
+  New GDB commands can now be written in Python.
+
+* Ada tasking support
+
+  Ada tasks can now be inspected in GDB. The following commands have
+  been introduced:
+
+    info tasks
+      Print the list of Ada tasks.
+    info task N
+      Print detailed information about task number N.
+    task
+      Print the task number of the current task.
+    task N
+      Switch the context of debugging to task number N.
+
+* Support for user-defined prefixed commands.  The "define" command can
+add new commands to existing prefixes, e.g. "target".
+
+* Multi-inferior, multi-process debugging.
+
+  GDB now has generalized support for multi-inferior debugging.  See
+  "Debugging Multiple Inferiors" in the manual for more information.
+  Although availability still depends on target support, the command
+  set is more uniform now.  The GNU/Linux specific multi-forks support
+  has been migrated to this new framework.  This implied some user
+  visible changes; see "New commands" and also "Removed commands"
+  below.
+
+* Target descriptions can now describe the target OS ABI.  See the
+"Target Description Format" section in the user manual for more
+information.
+
+* Target descriptions can now describe "compatible" architectures
+to indicate that the target can execute applications for a different
+architecture in addition to those for the main target architecture.
+See the "Target Description Format" section in the user manual for
+more information.
+
+* Multi-architecture debugging.
+
+  GDB now includes general supports for debugging applications on
+  hybrid systems that use more than one single processor architecture
+  at the same time.  Each such hybrid architecture still requires
+  specific support to be added.  The only hybrid architecture supported
+  in this version of GDB is the Cell Broadband Engine.
+
+* GDB now supports integrated debugging of Cell/B.E. applications that
+use both the PPU and SPU architectures.  To enable support for hybrid
+Cell/B.E. debugging, you need to configure GDB to support both the
+powerpc-linux or powerpc64-linux and the spu-elf targets, using the
+--enable-targets configure option.
+
+* Non-stop mode debugging.
+
+  For some targets, GDB now supports an optional mode of operation in
+  which you can examine stopped threads while other threads continue
+  to execute freely.  This is referred to as non-stop mode, with the
+  old mode referred to as all-stop mode.  See the "Non-Stop Mode"
+  section in the user manual for more information.
+
+  To be able to support remote non-stop debugging, a remote stub needs
+  to implement the non-stop mode remote protocol extensions, as
+  described in the "Remote Non-Stop" section of the user manual.  The
+  GDB remote stub, gdbserver, has been adjusted to support these
+  extensions on linux targets.
+
+* New commands (for set/show, see "New options" below)
+
+catch syscall [NAME(S) | NUMBER(S)]
+  Catch system calls.  Arguments, which should be names of system
+  calls or their numbers, mean catch only those syscalls.  Without
+  arguments, every syscall will be caught.  When the inferior issues
+  any of the specified syscalls, GDB will stop and announce the system
+  call, both when it is called and when its call returns.  This
+  feature is currently available with a native GDB running on the
+  Linux Kernel, under the following architectures: x86, x86_64,
+  PowerPC and PowerPC64.
+
+find [/size-char] [/max-count] start-address, end-address|+search-space-size,
+    val1 [, val2, ...]
+  Search memory for a sequence of bytes.
+
+maint set python print-stack
+maint show python print-stack
+  Show a stack trace when an error is encountered in a Python script.
+
+python [CODE]
+  Invoke CODE by passing it to the Python interpreter.
+
+macro define
+macro list
+macro undef
+  These allow macros to be defined, undefined, and listed
+  interactively.
+
+info os processes
+  Show operating system information about processes.
+
+info inferiors
+  List the inferiors currently under GDB's control.
+
+inferior NUM
+  Switch focus to inferior number NUM.
+
+detach inferior NUM
+  Detach from inferior number NUM.
+
+kill inferior NUM
+  Kill inferior number NUM.
+
+* New options
+
+set spu stop-on-load
+show spu stop-on-load
+  Control whether to stop for new SPE threads during Cell/B.E. debugging.
+
+set spu auto-flush-cache
+show spu auto-flush-cache
+  Control whether to automatically flush the software-managed cache
+  during Cell/B.E. debugging.
+
+set sh calling-convention
+show sh calling-convention
+  Control the calling convention used when calling SH target functions.
+
+set debug timestamp
 show debug timestamp
-  Display timestamps with GDB debugging output.
+  Control display of timestamps with GDB debugging output.
+
+set disassemble-next-line
+show disassemble-next-line
+  Control display of disassembled source lines or instructions when
+  the debuggee stops.
+
+set remote noack-packet
+show remote noack-packet
+  Set/show the use of remote protocol QStartNoAckMode packet.  See above
+  under "New remote packets."
+
+set remote query-attached-packet
+show remote query-attached-packet
+  Control use of remote protocol `qAttached' (query-attached) packet.
+
+set remote read-siginfo-object
+show remote read-siginfo-object
+  Control use of remote protocol `qXfer:siginfo:read' (read-siginfo-object)
+  packet.
+
+set remote write-siginfo-object
+show remote write-siginfo-object
+  Control use of remote protocol `qXfer:siginfo:write' (write-siginfo-object)
+  packet.
+
+set remote reverse-continue
+show remote reverse-continue
+  Control use of remote protocol 'bc' (reverse-continue) packet.
+
+set remote reverse-step
+show remote reverse-step
+  Control use of remote protocol 'bs' (reverse-step) packet.
+
+set displaced-stepping
+show displaced-stepping
+  Control displaced stepping mode.  Displaced stepping is a way to
+  single-step over breakpoints without removing them from the debuggee.
+  Also known as "out-of-line single-stepping".
+
+set debug displaced
+show debug displaced
+  Control display of debugging info for displaced stepping.
+
+maint set internal-error
+maint show internal-error
+  Control what GDB does when an internal error is detected.
+
+maint set internal-warning
+maint show internal-warning
+  Control what GDB does when an internal warning is detected.
 
 set exec-wrapper
 show exec-wrapper
@@ -53,6 +420,122 @@ show breakpoint always-inserted
   them when resuming the target, and removing them when the target stops.
   This option can improve debugger performance on slow remote targets.
 
+set arm fallback-mode (arm|thumb|auto)
+show arm fallback-mode
+set arm force-mode (arm|thumb|auto)
+show arm force-mode
+  These commands control how ARM GDB determines whether instructions
+  are ARM or Thumb.  The default for both settings is auto, which uses
+  the current CPSR value for instructions without symbols; previous
+  versions of GDB behaved as if "set arm fallback-mode arm".
+
+set disable-randomization
+show disable-randomization
+  Standalone programs run with the virtual address space randomization enabled
+  by default on some platforms.  This option keeps the addresses stable across
+  multiple debugging sessions.
+
+set non-stop
+show non-stop
+  Control whether other threads are stopped or not when some thread hits
+  a breakpoint.
+
+set target-async
+show target-async
+  Requests that asynchronous execution is enabled in the target, if available.
+  In this case, it's possible to resume target in the background, and interact
+  with GDB while the target is running.  "show target-async" displays the
+  current state of asynchronous execution of the target.
+
+set target-wide-charset
+show target-wide-charset
+  The target-wide-charset is the name of the character set that GDB
+  uses when printing characters whose type is wchar_t.
+
+set tcp auto-retry (on|off)
+show tcp auto-retry
+set tcp connect-timeout
+show tcp connect-timeout
+  These commands allow GDB to retry failed TCP connections to a remote stub
+  with a specified timeout period; this is useful if the stub is launched
+  in parallel with GDB but may not be ready to accept connections immediately.
+
+set libthread-db-search-path
+show libthread-db-search-path
+  Control list of directories which GDB will search for appropriate
+  libthread_db.
+
+set schedule-multiple (on|off)
+show schedule-multiple
+  Allow GDB to resume all threads of all processes or only threads of
+  the current process.
+
+set stack-cache
+show stack-cache
+  Use more aggressive caching for accesses to the stack.  This improves
+  performance of remote debugging (particularly backtraces) without
+  affecting correctness.
+
+set interactive-mode (on|off|auto)
+show interactive-mode
+  Control whether GDB runs in interactive mode (on) or not (off).
+  When in interactive mode, GDB waits for the user to answer all
+  queries.  Otherwise, GDB does not wait and assumes the default
+  answer.  When set to auto (the default), GDB determines which
+  mode to use based on the stdin settings.
+
+* Removed commands
+
+info forks
+  For program forks, this is replaced by the new more generic `info
+  inferiors' command.  To list checkpoints, you can still use the
+  `info checkpoints' command, which was an alias for the `info forks'
+  command.
+
+fork NUM
+  Replaced by the new `inferior' command.  To switch between
+  checkpoints, you can still use the `restart' command, which was an
+  alias for the `fork' command.
+
+process PID
+  This is removed, since some targets don't have a notion of
+  processes.  To switch between processes, you can still use the
+  `inferior' command using GDB's own inferior number.
+
+delete fork NUM
+  For program forks, this is replaced by the new more generic `kill
+  inferior' command.  To delete a checkpoint, you can still use the
+  `delete checkpoint' command, which was an alias for the `delete
+  fork' command.
+
+detach fork NUM
+  For program forks, this is replaced by the new more generic `detach
+  inferior' command.  To detach a checkpoint, you can still use the
+  `detach checkpoint' command, which was an alias for the `detach
+  fork' command.
+
+* New native configurations
+
+x86/x86_64 Darwin              i[34567]86-*-darwin*
+
+x86_64 MinGW                   x86_64-*-mingw*
+
+* New targets
+
+Lattice Mico32                  lm32-*
+x86 DICOS                      i[34567]86-*-dicos*
+x86_64 DICOS                   x86_64-*-dicos*
+S+core 3                       score-*-*
+
+* The GDB remote stub, gdbserver, now supports x86 Windows CE
+  (mingw32ce) debugging.
+
+* Removed commands
+
+catch load
+catch unload
+  These commands were actually not implemented on any target.
+
 *** Changes in GDB 6.8
 
 * New native configurations
@@ -101,9 +584,9 @@ commands (remote put, remote get, and remote delete).
 extended-remote mode.
 
 * hppa*64*-*-hpux11* target broken
-  The debugger is unable to start a program and fails with the following
-  error: "Error trying to get information about dynamic linker".
-  The gdb-6.7 release is also affected.
+The debugger is unable to start a program and fails with the following
+error: "Error trying to get information about dynamic linker".
+The gdb-6.7 release is also affected.
 
 * GDB now supports the --enable-targets= configure option to allow
 building a single GDB executable that supports multiple remote
@@ -118,8 +601,8 @@ stored in two consecutive float registers.
 breakpoints now.
 
 * Improved support for debugging Ada
-  Many improvements to the Ada language support have been made.  These
-  include:
+Many improvements to the Ada language support have been made.  These
+include:
     - Better support for Ada2005 interface types
     - Improved handling of arrays and slices in general
     - Better support for Taft-amendment types
@@ -128,6 +611,9 @@ breakpoints now.
     - Improved command completion in Ada
     - Several bug fixes
 
+* GDB on GNU/Linux and HP/UX can now debug through "exec" of a new
+process.
+
 * New commands
 
 set print frame-arguments (all|scalars|none)
@@ -156,9 +642,6 @@ vFile:pwrite:
 vFile:unlink:
   Open, close, read, write, and delete files on the remote system.
 
-* GDB on GNU/Linux and HP/UX can now debug through "exec" of a new
-process.
-
 vAttach
   Attach to an existing process on the remote system, in extended-remote
   mode.
This page took 0.060971 seconds and 4 git commands to generate.