Add support for the readnever concept
[deliverable/binutils-gdb.git] / gdb / NEWS
index a6b1282aecaf053ef934e3020495e7a89f577f95..ff9a8199183aa81661506f87e411cd666635a811 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,7 +1,251 @@
                What has changed in GDB?
             (Organized release by release)
 
-*** Changes since GDB 7.12
+*** Changes since GDB 8.0
+
+* New "--readnever" command line option instructs GDB to not read each
+  symbol file's symbolic debug information.  This makes startup faster
+  but at the expense of not being able to perform symbolic debugging.
+  This option is intended for use cases where symbolic debugging will
+  not be used, e.g., when you only need to dump the debuggee's core.
+
+* GDB now uses the GNU MPFR library, if available, to emulate target
+  floating-point arithmetic during expression evaluation when the target
+  uses different floating-point formats than the host.  At least version
+  3.1 of GNU MPFR is required.
+
+* GDB now supports access to the guarded-storage-control registers and the
+  software-based guarded-storage broadcast control registers on IBM z14.
+
+* On Unix systems, GDB now supports transmitting environment variables
+  that are to be set or unset to GDBserver.  These variables will
+  affect the environment to be passed to the remote inferior.
+
+  To inform GDB of environment variables that are to be transmitted to
+  GDBserver, use the "set environment" command.  Only user set
+  environment variables are sent to GDBserver.
+
+  To inform GDB of environment variables that are to be unset before
+  the remote inferior is started by the GDBserver, use the "unset
+  environment" command.
+
+* Completion improvements
+
+  ** GDB can now complete function parameters in linespecs and
+     explicit locations without quoting.  When setting breakpoints,
+     quoting around functions names to help with TAB-completion is
+     generally no longer necessary.  For example, this now completes
+     correctly:
+
+      (gdb) b function(in[TAB]
+      (gdb) b function(int)
+
+     Related, GDB is no longer confused with completing functions in
+     C++ anonymous namespaces:
+
+      (gdb) b (anon[TAB]
+      (gdb) b (anonymous namespace)::[TAB][TAB]
+      (anonymous namespace)::a_function()
+      (anonymous namespace)::b_function()
+
+  ** GDB now has much improved linespec and explicit locations TAB
+     completion support, that better understands what you're
+     completing and offers better suggestions.  For example, GDB no
+     longer offers data symbols as possible completions when you're
+     setting a breakpoint.
+
+  ** GDB now TAB-completes label symbol names.
+
+  ** The "complete" command now mimics TAB completion accurately.
+
+* Breakpoints on C++ functions are now set on all scopes by default
+
+  By default, breakpoints on functions/methods are now interpreted as
+  specifying all functions with the given name ignoring missing
+  leading scopes (namespaces and classes).
+
+  For example, assuming a C++ program with symbols named:
+
+    A::B::func()
+    B::func()
+
+  both commands "break func()" and "break B::func()" set a breakpoint
+  on both symbols.
+
+  You can use the new flag "-qualified" to override this.  This makes
+  GDB interpret the specified function name as a complete
+  fully-qualified name instead.  For example, using the same C++
+  program, the "break -q B::func" command sets a breakpoint on
+  "B::func", only.
+
+* Breakpoints on functions marked with C++ ABI tags
+
+  GDB can now set breakpoints on functions marked with C++ ABI tags
+  (e.g., [abi:cxx11]).  See here for a description of ABI tags:
+  https://developers.redhat.com/blog/2015/02/05/gcc5-and-the-c11-abi/
+
+  Functions with a C++11 abi tag are demangled/displayed like this:
+
+    function[abi:cxx11](int)
+            ^^^^^^^^^^^
+
+  You can now set a breakpoint on such functions simply as if they had
+  no tag, like:
+
+    (gdb) b function(int)
+
+  Or if you need to disambiguate between tags, like:
+
+    (gdb) b function[abi:other_tag](int)
+
+  Tab completion was adjusted accordingly as well.
+
+* Python Scripting
+
+  ** New events gdb.new_inferior, gdb.inferior_deleted, and
+     gdb.new_thread are emitted.  See the manual for further
+     description of these.
+
+  ** A new command, "rbreak" has been added to the Python API.  This
+     command allows the setting of a large number of breakpoints via a
+     regex pattern in Python.  See the manual for further details.
+
+* New features in the GDB remote stub, GDBserver
+
+  ** GDBserver is now able to start inferior processes with a
+     specified initial working directory.
+
+     The user can set the desired working directory to be used from
+     GDB using the new "set cwd" command.
+
+  ** New "--selftest" command line option runs some GDBserver self
+     tests.  These self tests are disabled in releases.
+
+  ** On Unix systems, GDBserver now does globbing expansion and variable
+     substitution in inferior command line arguments.
+
+     This is done by starting inferiors using a shell, like GDB does.
+     See "set startup-with-shell" in the user manual for how to disable
+     this from GDB when using "target extended-remote".  When using
+     "target remote", you can disable the startup with shell by using the
+     new "--no-startup-with-shell" GDBserver command line option.
+
+  ** On Unix systems, GDBserver now supports receiving environment
+     variables that are to be set or unset from GDB.  These variables
+     will affect the environment to be passed to the inferior.
+
+* When catching an Ada exception raised with a message, GDB now prints
+  the message in the catchpoint hit notification. In GDB/MI mode, that
+  information is provided as an extra field named "exception-message"
+  in the *stopped notification.
+
+* New remote packets
+
+QEnvironmentHexEncoded
+  Inform GDBserver of an environment variable that is to be passed to
+  the inferior when starting it.
+
+QEnvironmentUnset
+  Inform GDBserver of an environment variable that is to be unset
+  before starting the remote inferior.
+
+QEnvironmentReset
+  Inform GDBserver that the environment should be reset (i.e.,
+  user-set environment variables should be unset).
+
+QStartupWithShell
+  Indicates whether the inferior must be started with a shell or not.
+
+QSetWorkingDir
+  Tell GDBserver that the inferior to be started should use a specific
+  working directory.
+
+* The "maintenance print c-tdesc" command now takes an optional
+  argument which is the file name of XML target description.
+
+* The "maintenance selftest" command now takes an optional argument to
+  filter the tests to be run.
+
+* The "enable", and "disable" commands now accept a range of
+  breakpoint locations, e.g. "enable 1.3-5".
+
+* New commands
+
+set|show cwd
+  Set and show the current working directory for the inferior.
+
+set|show compile-gcc
+  Set and show compilation command used for compiling and injecting code
+  with the 'compile' commands.
+
+set debug separate-debug-file
+show debug separate-debug-file
+  Control the display of debug output about separate debug file search.
+
+maint info selftests
+  List the registered selftests.
+
+starti
+  Start the debugged program stopping at the first instruction.
+
+* TUI Single-Key mode now supports two new shortcut keys: `i' for stepi and
+  `o' for nexti.
+
+* Safer/improved support for debugging with no debug info
+
+  GDB no longer assumes functions with no debug information return
+  'int'.
+
+  This means that GDB now refuses to call such functions unless you
+  tell it the function's type, by either casting the call to the
+  declared return type, or by casting the function to a function
+  pointer of the right type, and calling that:
+
+    (gdb) p getenv ("PATH")
+    'getenv' has unknown return type; cast the call to its declared return type
+    (gdb) p (char *) getenv ("PATH")
+    $1 = 0x7fffffffe "/usr/local/bin:/"...
+    (gdb) p ((char * (*) (const char *)) getenv) ("PATH")
+    $2 = 0x7fffffffe "/usr/local/bin:/"...
+
+  Similarly, GDB no longer assumes that global variables with no debug
+  info have type 'int', and refuses to print the variable's value
+  unless you tell it the variable's type:
+
+    (gdb) p var
+    'var' has unknown type; cast it to its declared type
+    (gdb) p (float) var
+    $3 = 3.14
+
+* New native configurations
+
+FreeBSD/aarch64                        aarch64*-*-freebsd*
+FreeBSD/arm                    arm*-*-freebsd*
+
+* New targets
+
+FreeBSD/aarch64                        aarch64*-*-freebsd*
+FreeBSD/arm                    arm*-*-freebsd*
+
+* Removed targets and native configurations
+
+Solaris 2.0-9                  i?86-*-solaris2.[0-9], sparc*-*-solaris2.[0-9]
+
+*** Changes in GDB 8.0
+
+* GDB now supports access to the PKU register on GNU/Linux. The register is
+  added by the Memory Protection Keys for Userspace feature which will be
+  available in future Intel CPUs.
+
+* GDB now supports C++11 rvalue references.
+
+* Python Scripting
+
+  ** New functions to start, stop and access a running btrace recording.
+  ** Rvalue references are now supported in gdb.Type.
+
+* GDB now supports recording and replaying rdrand and rdseed Intel 64
+  instructions.
 
 * Building GDB and GDBserver now requires a C++11 compiler.
 
   compiler.  The --disable-build-with-cxx configure option has been
   removed.
 
+* Building GDB and GDBserver now requires GNU make >= 3.81.
+
+  It is no longer supported to build GDB or GDBserver with another
+  implementation of the make program or an earlier version of GNU make.
+
 * Native debugging on MS-Windows supports command-line redirection
 
   Command-line arguments used for starting programs on MS-Windows can
 
 * Support for Java programs compiled with gcj has been removed.
 
+* User commands now accept an unlimited number of arguments.
+  Previously, only up to 10 was accepted.
+
+* The "eval" command now expands user-defined command arguments.
+
+  This makes it easier to process a variable number of arguments:
+
+   define mycommand
+     set $i = 0
+     while $i < $argc
+       eval "print $arg%d", $i
+       set $i = $i + 1
+     end
+   end
+
+* Target descriptions can now describe registers for sparc32 and sparc64.
+
+* GDB now supports DWARF version 5 (debug information format).
+  Its .debug_names index is not yet supported.
+
+* New native configurations
+
+FreeBSD/mips                   mips*-*-freebsd
+
 * New targets
 
 Synopsys ARC                   arc*-*-elf32
+FreeBSD/mips                   mips*-*-freebsd
+
+* Removed targets and native configurations
+
+Alpha running FreeBSD         alpha*-*-freebsd*
+Alpha running GNU/kFreeBSD    alpha*-*-kfreebsd*-gnu
+
+* New commands
+
+flash-erase
+  Erases all the flash memory regions reported by the target.
+
+maint print arc arc-instruction address
+  Print internal disassembler information about instruction at a given address.
+
+* New options
+
+set disassembler-options
+show disassembler-options
+  Controls the passing of target specific information to the disassembler.
+  If it is necessary to specify more than one disassembler option then
+  multiple options can be placed together into a comma separated list.
+  The default value is the empty string.  Currently, the only supported
+  targets are ARM, PowerPC and S/390.
+
+* New MI commands
+
+-target-flash-erase
+  Erases all the flash memory regions reported by the target.  This is
+  equivalent to the CLI command flash-erase.
+
+-file-list-shared-libraries
+  List the shared libraries in the program.  This is
+  equivalent to the CLI command "info shared".
 
 *** Changes in GDB 7.12
 
@@ -60,6 +367,13 @@ Synopsys ARC                        arc*-*-elf32
 * Fortran: Support structures with fields of dynamic types and 
   arrays of dynamic types.
 
+* The symbol dumping maintenance commands have new syntax.
+maint print symbols [-pc address] [--] [filename]
+maint print symbols [-objfile objfile] [-source source] [--] [filename]
+maint print psymbols [-objfile objfile] [-pc address] [--] [filename]
+maint print psymbols [-objfile objfile] [-source source] [--] [filename]
+maint print msymbols [-objfile objfile] [--] [filename]
+
 * GDB now supports multibit bitfields and enums in target register
   descriptions.
 
This page took 0.029528 seconds and 4 git commands to generate.