Intel MPX bound violation handling
[deliverable/binutils-gdb.git] / gdb / NEWS
index 9a668c4ebbe37648dd2d42c9bde8e5b0c8c9f167..64c4869009c2f8c0e19bc6503f3e5570149fcaa3 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,7 +1,566 @@
                What has changed in GDB?
             (Organized release by release)
 
-*** Changes since GDB 7.8
+*** Changes since GDB 7.11
+
+* Intel MPX bound violation handling.
+
+   Segmentation faults caused by a Intel MPX boundary violation
+   now display the kind of violation (upper or lower), the memory
+   address accessed and the memory bounds, along with the usual
+   signal received and code location.
+
+   For example:
+
+   Program received signal SIGSEGV, Segmentation fault
+   Upper bound violation while accessing address 0x7fffffffc3b3
+   Bounds: [lower = 0x7fffffffc390, upper = 0x7fffffffc3a3]
+   0x0000000000400d7c in upper () at i386-mpx-sigsegv.c:68
+
+*** Changes in GDB 7.11
+
+* GDB now supports debugging kernel-based threads on FreeBSD.
+
+* Per-inferior thread numbers
+
+  Thread numbers are now per inferior instead of global.  If you're
+  debugging multiple inferiors, GDB displays thread IDs using a
+  qualified INF_NUM.THR_NUM form.  For example:
+
+     (gdb) info threads
+       Id   Target Id         Frame
+       1.1  Thread 0x7ffff7fc2740 (LWP 8155) (running)
+       1.2  Thread 0x7ffff7fc1700 (LWP 8168) (running)
+     * 2.1  Thread 0x7ffff7fc2740 (LWP 8157) (running)
+       2.2  Thread 0x7ffff7fc1700 (LWP 8190) (running)
+
+  As consequence, thread numbers as visible in the $_thread
+  convenience variable and in Python's InferiorThread.num attribute
+  are no longer unique between inferiors.
+
+  GDB now maintains a second thread ID per thread, referred to as the
+  global thread ID, which is the new equivalent of thread numbers in
+  previous releases.  See also $_gthread below.
+
+  For backwards compatibility, MI's thread IDs always refer to global
+  IDs.
+
+* Commands that accept thread IDs now accept the qualified
+  INF_NUM.THR_NUM form as well.  For example:
+
+     (gdb) thread 2.1
+     [Switching to thread 2.1 (Thread 0x7ffff7fc2740 (LWP 8157))] (running)
+     (gdb)
+
+* In commands that accept a list of thread IDs, you can now refer to
+  all threads of an inferior using a star wildcard.  GDB accepts
+  "INF_NUM.*", to refer to all threads of inferior INF_NUM, and "*" to
+  refer to all threads of the current inferior.  For example, "info
+  threads 2.*".
+
+* You can use "info threads -gid" to display the global thread ID of
+  all threads.
+
+* The new convenience variable $_gthread holds the global number of
+  the current thread.
+
+* The new convenience variable $_inferior holds the number of the
+  current inferior.
+
+* GDB now displays the ID and name of the thread that hit a breakpoint
+  or received a signal, if your program is multi-threaded.  For
+  example:
+
+   Thread 3 "bar" hit Breakpoint 1 at 0x40087a: file program.c, line 20.
+   Thread 1 "main" received signal SIGINT, Interrupt.
+
+* Record btrace now supports non-stop mode.
+
+* Support for tracepoints on aarch64-linux was added in GDBserver.
+
+* The 'record instruction-history' command now indicates speculative execution
+  when using the Intel Processor Trace recording format.
+
+* GDB now allows users to specify explicit locations, bypassing
+  the linespec parser.  This feature is also available to GDB/MI
+  clients.
+
+* Multi-architecture debugging is supported on AArch64 GNU/Linux.
+  GDB now is able to debug both AArch64 applications and ARM applications
+  at the same time.
+
+* Support for fast tracepoints on aarch64-linux was added in GDBserver,
+  including JIT compiling fast tracepoint's conditional expression bytecode
+  into native code.
+
+* GDB now supports displaced stepping on AArch64 GNU/Linux.
+
+* "info threads", "info inferiors", "info display", "info checkpoints"
+  and "maint info program-spaces" now list the corresponding items in
+  ascending ID order, for consistency with all other "info" commands.
+
+* In Ada, the overloads selection menu has been enhanced to display the
+  parameter types and the return types for the matching overloaded subprograms.
+
+* New commands
+
+maint set target-non-stop (on|off|auto)
+maint show target-non-stop
+  Control whether GDB targets always operate in non-stop mode even if
+  "set non-stop" is "off".  The default is "auto", meaning non-stop
+  mode is enabled if supported by the target.
+
+maint set bfd-sharing
+maint show bfd-sharing
+  Control the reuse of bfd objects.
+
+set debug bfd-cache
+show debug bfd-cache
+  Control display of debugging info regarding bfd caching.
+
+set debug fbsd-lwp
+show debug fbsd-lwp
+  Control display of debugging info regarding FreeBSD threads.
+
+set remote multiprocess-extensions-packet
+show remote multiprocess-extensions-packet
+  Set/show the use of the remote protocol multiprocess extensions.
+
+set remote thread-events
+show remote thread-events
+  Set/show the use of thread create/exit events.
+
+set ada print-signatures on|off
+show ada print-signatures"
+  Control whether parameter types and return types are displayed in overloads
+  selection menus.  It is activaled (@code{on}) by default.
+
+set max-value-size
+show max-value-size
+  Controls the maximum size of memory, in bytes, that GDB will
+  allocate for value contents.  Prevents incorrect programs from
+  causing GDB to allocate overly large buffers.  Default is 64k.
+
+* The "disassemble" command accepts a new modifier: /s.
+  It prints mixed source+disassembly like /m with two differences:
+  - disassembled instructions are now printed in program order, and
+  - and source for all relevant files is now printed.
+  The "/m" option is now considered deprecated: its "source-centric"
+  output hasn't proved useful in practice.
+
+* The "record instruction-history" command accepts a new modifier: /s.
+  It behaves exactly like /m and prints mixed source+disassembly.
+
+* The "set scheduler-locking" command supports a new mode "replay".
+  It behaves like "off" in record mode and like "on" in replay mode.
+
+* Support for various ROM monitors has been removed:
+
+  target dbug          dBUG ROM monitor for Motorola ColdFire
+  target picobug       Motorola picobug monitor
+  target dink32                DINK32 ROM monitor for PowerPC
+  target m32r          Renesas M32R/D ROM monitor
+  target mon2000       mon2000 ROM monitor
+  target ppcbug                PPCBUG ROM monitor for PowerPC
+
+* Support for reading/writing memory and extracting values on architectures
+  whose memory is addressable in units of any integral multiple of 8 bits.
+
+* New remote packets
+
+exec stop reason
+  Indicates that an exec system call was executed.
+
+exec-events feature in qSupported
+  The qSupported packet allows GDB to request support for exec
+  events using the new 'gdbfeature' exec-event, and the qSupported
+  response can contain the corresponding 'stubfeature'.  Set and
+  show commands can be used to display whether these features are enabled.
+
+vCtrlC
+  Equivalent to interrupting with the ^C character, but works in
+  non-stop mode.
+
+thread created stop reason (T05 create:...)
+  Indicates that the thread was just created and is stopped at entry.
+
+thread exit stop reply (w exitcode;tid)
+  Indicates that the thread has terminated.
+
+QThreadEvents
+  Enables/disables thread create and exit event reporting.  For
+  example, this is used in non-stop mode when GDB stops a set of
+  threads and synchronously waits for the their corresponding stop
+  replies.  Without exit events, if one of the threads exits, GDB
+  would hang forever not knowing that it should no longer expect a
+  stop for that same thread.
+
+N stop reply
+
+  Indicates that there are no resumed threads left in the target (all
+  threads are stopped).  The remote stub reports support for this stop
+  reply to GDB's qSupported query.
+
+QCatchSyscalls:1 [;SYSNO]...
+QCatchSyscalls:0
+  Enable ("QCatchSyscalls:1") or disable ("QCatchSyscalls:0")
+  catching syscalls from the inferior process.
+
+syscall_entry stop reason
+  Indicates that a syscall was just called.
+
+syscall_return stop reason
+  Indicates that a syscall just returned.
+
+QCatchSyscalls:1 in qSupported
+  The qSupported packet may now include QCatchSyscalls:1 in the reply
+  to indicate support for catching syscalls.
+
+* Extended-remote exec events
+
+  ** GDB now has support for exec events on extended-remote Linux targets.
+     For such targets with Linux kernels 2.5.46 and later, this enables
+     follow-exec-mode and exec catchpoints.
+
+set remote exec-event-feature-packet
+show remote exec-event-feature-packet
+  Set/show the use of the remote exec event feature.
+
+ * Thread names in remote protocol
+
+   The reply to qXfer:threads:read may now include a name attribute for each
+   thread.
+
+* Target remote mode fork and exec events
+
+  ** GDB now has support for fork and exec events on target remote mode
+     Linux targets.  For such targets with Linux kernels 2.5.46 and later,
+     this enables follow-fork-mode, detach-on-fork, follow-exec-mode, and
+     fork and exec catchpoints.
+
+* Remote syscall events
+
+  ** GDB now has support for catch syscall on remote Linux targets,
+     currently enabled on x86/x86_64 architectures.
+
+set remote catch-syscall-packet
+show remote catch-syscall-packet
+  Set/show the use of the remote catch syscall feature.
+
+* MI changes
+
+  ** The -var-set-format command now accepts the zero-hexadecimal
+     format.  It outputs data in hexadecimal format with zero-padding on the
+     left.
+
+* Python Scripting
+
+  ** gdb.InferiorThread objects have a new attribute "global_num",
+     which refers to the thread's global thread ID.  The existing
+     "num" attribute now refers to the thread's per-inferior number.
+     See "Per-inferior thread numbers" above.
+  ** gdb.InferiorThread objects have a new attribute "inferior", which
+     is the Inferior object the thread belongs to.
+
+*** Changes in GDB 7.10
+
+* Support for process record-replay and reverse debugging on aarch64*-linux*
+  targets has been added.  GDB now supports recording of A64 instruction set
+  including advance SIMD instructions.
+
+* Support for Sun's version of the "stabs" debug file format has been removed.
+
+* GDB now honors the content of the file /proc/PID/coredump_filter
+  (PID is the process ID) on GNU/Linux systems.  This file can be used
+  to specify the types of memory mappings that will be included in a
+  corefile.  For more information, please refer to the manual page of
+  "core(5)".  GDB also has a new command: "set use-coredump-filter
+  on|off".  It allows to set whether GDB will read the content of the
+  /proc/PID/coredump_filter file when generating a corefile.
+
+* The "info os" command on GNU/Linux can now display information on
+  cpu information :
+    "info os cpus" Listing of all cpus/cores on the system
+
+* GDB has two new commands: "set serial parity odd|even|none" and
+  "show serial parity".  These allows to set or show parity for the
+  remote serial I/O.
+
+* The "info source" command now displays the producer string if it was
+  present in the debug info.  This typically includes the compiler version
+  and may include things like its command line arguments.
+
+* The "info dll", an alias of the "info sharedlibrary" command,
+  is now available on all platforms.
+
+* Directory names supplied to the "set sysroot" commands may be
+  prefixed with "target:" to tell GDB to access shared libraries from
+  the target system, be it local or remote.  This replaces the prefix
+  "remote:".  The default sysroot has been changed from "" to
+  "target:".  "remote:" is automatically converted to "target:" for
+  backward compatibility.
+
+* The system root specified by "set sysroot" will be prepended to the
+  filename of the main executable (if reported to GDB as absolute by
+  the operating system) when starting processes remotely, and when
+  attaching to already-running local or remote processes.
+
+* GDB now supports automatic location and retrieval of executable
+  files from remote targets.  Remote debugging can now be initiated
+  using only a "target remote" or "target extended-remote" command
+  (no "set sysroot" or "file" commands are required).  See "New remote
+  packets" below.
+
+* The "dump" command now supports verilog hex format.
+
+* GDB now supports the vector ABI on S/390 GNU/Linux targets.
+
+* On GNU/Linux, GDB and gdbserver are now able to access executable
+  and shared library files without a "set sysroot" command when
+  attaching to processes running in different mount namespaces from
+  the debugger.  This makes it possible to attach to processes in
+  containers as simply as "gdb -p PID" or "gdbserver --attach PID".
+  See "New remote packets" below.
+
+* The "tui reg" command now provides completion for all of the
+  available register groups, including target specific groups.
+
+* The HISTSIZE environment variable is no longer read when determining
+  the size of GDB's command history.  GDB now instead reads the dedicated
+  GDBHISTSIZE environment variable.  Setting GDBHISTSIZE to "-1" or to "" now
+  disables truncation of command history.  Non-numeric values of GDBHISTSIZE
+  are ignored.
+
+* Guile Scripting
+
+  ** Memory ports can now be unbuffered.
+
+* Python Scripting
+
+  ** gdb.Objfile objects have a new attribute "username",
+     which is the name of the objfile as specified by the user,
+     without, for example, resolving symlinks.
+  ** You can now write frame unwinders in Python.
+  ** gdb.Type objects have a new method "optimized_out",
+     returning optimized out gdb.Value instance of this type.
+  ** gdb.Value objects have new methods "reference_value" and
+     "const_value" which return a reference to the value and a
+     "const" version of the value respectively.
+
+* New commands
+
+maint print symbol-cache
+  Print the contents of the symbol cache.
+
+maint print symbol-cache-statistics
+  Print statistics of symbol cache usage.
+
+maint flush-symbol-cache
+  Flush the contents of the symbol cache.
+
+record btrace bts
+record bts
+  Start branch trace recording using Branch Trace Store (BTS) format.
+
+compile print
+  Evaluate expression by using the compiler and print result.
+
+tui enable
+tui disable
+  Explicit commands for enabling and disabling tui mode.
+
+show mpx bound
+set mpx bound on i386 and amd64
+   Support for bound table investigation on Intel MPX enabled applications.
+
+record btrace pt
+record pt
+  Start branch trace recording using Intel Processor Trace format.
+
+maint info btrace
+  Print information about branch tracing internals.
+
+maint btrace packet-history
+  Print the raw branch tracing data.
+
+maint btrace clear-packet-history
+  Discard the stored raw branch tracing data.
+
+maint btrace clear
+  Discard all branch tracing data.  It will be fetched and processed
+  anew by the next "record" command.
+
+* New options
+
+set debug dwarf-die
+  Renamed from "set debug dwarf2-die".
+show debug dwarf-die
+  Renamed from "show debug dwarf2-die".
+
+set debug dwarf-read
+  Renamed from "set debug dwarf2-read".
+show debug dwarf-read
+  Renamed from "show debug dwarf2-read".
+
+maint set dwarf always-disassemble
+  Renamed from "maint set dwarf2 always-disassemble".
+maint show dwarf always-disassemble
+  Renamed from "maint show dwarf2 always-disassemble".
+
+maint set dwarf max-cache-age
+  Renamed from "maint set dwarf2 max-cache-age".
+maint show dwarf max-cache-age
+  Renamed from "maint show dwarf2 max-cache-age".
+
+set debug dwarf-line
+show debug dwarf-line
+  Control display of debugging info regarding DWARF line processing.
+
+set max-completions
+show max-completions
+  Set the maximum number of candidates to be considered during
+  completion.  The default value is 200.  This limit allows GDB
+  to avoid generating large completion lists, the computation of
+  which can cause the debugger to become temporarily unresponsive.
+
+set history remove-duplicates
+show history remove-duplicates
+  Control the removal of duplicate history entries.
+
+maint set symbol-cache-size
+maint show symbol-cache-size
+  Control the size of the symbol cache.
+
+set|show record btrace bts buffer-size
+  Set and show the size of the ring buffer used for branch tracing in
+  BTS format.
+  The obtained size may differ from the requested size.  Use "info
+  record" to see the obtained buffer size.
+
+set debug linux-namespaces
+show debug linux-namespaces
+  Control display of debugging info regarding Linux namespaces.
+
+set|show record btrace pt buffer-size
+  Set and show the size of the ring buffer used for branch tracing in
+  Intel Processor Trace format.
+  The obtained size may differ from the requested size.  Use "info
+  record" to see the obtained buffer size.
+
+maint set|show btrace pt skip-pad
+  Set and show whether PAD packets are skipped when computing the
+  packet history.
+
+* The command 'thread apply all' can now support new option '-ascending'
+  to call its specified command for all threads in ascending order.
+
+* Python/Guile scripting
+
+  ** GDB now supports auto-loading of Python/Guile scripts contained in the
+     special section named `.debug_gdb_scripts'.
+
+* New remote packets
+
+qXfer:btrace-conf:read
+  Return the branch trace configuration for the current thread.
+
+Qbtrace-conf:bts:size
+  Set the requested ring buffer size for branch tracing in BTS format.
+
+Qbtrace:pt
+  Enable Intel Procesor Trace-based branch tracing for the current
+  process.  The remote stub reports support for this packet to GDB's
+  qSupported query.
+
+Qbtrace-conf:pt:size
+  Set the requested ring buffer size for branch tracing in Intel Processor
+  Trace format.
+
+swbreak stop reason
+  Indicates a memory breakpoint instruction was executed, irrespective
+  of whether it was GDB that planted the breakpoint or the breakpoint
+  is hardcoded in the program.  This is required for correct non-stop
+  mode operation.
+
+hwbreak stop reason
+  Indicates the target stopped for a hardware breakpoint.  This is
+  required for correct non-stop mode operation.
+
+vFile:fstat:
+  Return information about files on the remote system.
+
+qXfer:exec-file:read
+  Return the full absolute name of the file that was executed to
+  create a process running on the remote system.
+
+vFile:setfs:
+  Select the filesystem on which vFile: operations with filename
+  arguments will operate.  This is required for GDB to be able to
+  access files on remote targets where the remote stub does not
+  share a common filesystem with the inferior(s).
+
+fork stop reason
+  Indicates that a fork system call was executed.
+
+vfork stop reason
+  Indicates that a vfork system call was executed.
+
+vforkdone stop reason
+  Indicates that a vfork child of the specified process has executed
+  an exec or exit, allowing the vfork parent to resume execution.
+
+fork-events and vfork-events features in qSupported
+  The qSupported packet allows GDB to request support for fork and 
+  vfork events using new 'gdbfeatures' fork-events and vfork-events,
+  and the qSupported response can contain the corresponding
+  'stubfeatures'.  Set and show commands can be used to display
+  whether these features are enabled.
+
+* Extended-remote fork events
+
+  ** GDB now has support for fork events on extended-remote Linux
+     targets.  For targets with Linux kernels 2.5.60 and later, this
+     enables follow-fork-mode and detach-on-fork for both fork and
+     vfork, as well as fork and vfork catchpoints.
+
+* The info record command now shows the recording format and the
+  branch tracing configuration for the current thread when using
+  the btrace record target.
+  For the BTS format, it shows the ring buffer size.
+
+* GDB now has support for DTrace USDT (Userland Static Defined
+  Tracing) probes.  The supported targets are x86_64-*-linux-gnu.
+
+* GDB now supports access to vector registers on S/390 GNU/Linux
+  targets.
+
+* Removed command line options
+
+-xdb  HP-UX XDB compatibility mode.
+
+* Removed targets and native configurations
+
+HP/PA running HP-UX           hppa*-*-hpux*
+Itanium running HP-UX         ia64-*-hpux*
+
+* New configure options
+
+--with-intel-pt
+  This configure option allows the user to build GDB with support for
+  Intel Processor Trace (default: auto).  This requires libipt.
+
+--with-libipt-prefix=PATH
+  Specify the path to the version of libipt that GDB should use.
+  $PATH/include should contain the intel-pt.h header and
+  $PATH/lib should contain the libipt.so library.
+
+*** Changes in GDB 7.9.1
+
+* Python Scripting
+
+  ** Xmethods can now specify a result type.
+
+*** Changes in GDB 7.9
 
 * GDB now supports hardware watchpoints on x86 GNU Hurd.
 
 
 * New commands
 
+demangle [-l language] [--] name
+  Demangle "name" in the specified language, or the current language
+  if elided.  This command is renamed from the "maint demangle" command.
+  The latter is kept as a no-op to avoid "maint demangle" being interpreted
+  as "maint demangler-warning".
+
 queue-signal signal-name-or-number
   Queue a signal to be delivered to the thread when it is resumed.
 
@@ -254,10 +819,10 @@ show mi-async
   can be used to launch native programs even when "set
   auto-connect-native-target" is set to off.
 
-* GDB now supports access to Intel(R) MPX registers on GNU/Linux.
+* GDB now supports access to Intel MPX registers on GNU/Linux.
 
-* Support for Intel(R) AVX-512 registers on GNU/Linux.
-  Support displaying and modifying Intel(R) AVX-512 registers
+* Support for Intel AVX-512 registers on GNU/Linux.
+  Support displaying and modifying Intel AVX-512 registers
   $zmm0 - $zmm31 and $k0 - $k7 on GNU/Linux.
 
 * New remote packets
This page took 0.029761 seconds and 4 git commands to generate.