X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2FNEWS;h=b21b2cbb4787103d91c0fb9e7e8e47fd9c9ec9d7;hb=2e62ab400ff96334c92e5acf0a462cb9dc0d19a7;hp=00adcd4d53d262ac4789b479bf7aebc36f9ff5db;hpb=c1168a2f66553cd4730931cf59e3be8378a1a03f;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/NEWS b/gdb/NEWS index 00adcd4d53..b21b2cbb47 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -1,7 +1,58 @@ What has changed in GDB? (Organized release by release) -*** Changes since GDB 8.2 +*** Changes since GDB 8.3 + +* New built-in convenience variables $_gdb_major and $_gdb_minor + provide the GDB version. They are handy for conditionally using + features available only in or since specific GDB versions, in + scripts that should work error-free with many different versions, + such as in system-wide init files. + +* GDB now supports Thread Local Storage (TLS) variables on several + FreeBSD architectures (amd64, i386, powerpc, riscv). Other + architectures require kernel changes. TLS is not yet supported for + amd64 and i386 process core dumps. + +* Support for Pointer Authentication on AArch64 Linux. + +* Two new convernience functions $_cimag and $_creal that extract the + imaginary and real parts respectively from complex numbers. + +* New commands + +set print max-depth +show print max-depth + Allows deeply nested structures to be simplified when printing by + replacing deeply nested parts (beyond the max-depth) with ellipses. + The default max-depth is 20, but this can be set to unlimited to get + the old behavior back. + +* Python API + + ** The gdb.Value type has a new method 'format_string' which returns a + string representing the value. The formatting is controlled by the + optional keyword arguments: 'raw', 'pretty_arrays', 'pretty_structs', + 'array_indexes', 'symbols', 'unions', 'deref_refs', 'actual_objects', + 'static_members', 'max_elements', 'repeat_threshold', and 'format'. + +* New commands + +set may-call-functions [on|off] +show may-call-functions + This controls whether GDB will attempt to call functions in + the program, such as with expressions in the print command. It + defaults to on. Calling functions in the program being debugged + can have undesired side effects. It is now possible to forbid + such function calls. If function calls are forbidden, GDB will throw + an error when a command (such as print expression) calls a function + in the program. + +*** Changes in GDB 8.3 + +* GDB and GDBserver now support access to additional registers on + PowerPC GNU/Linux targets: PPR, DSCR, TAR, EBB/PMU registers, and + HTM registers. * GDB now has experimental support for the compilation and injection of C++ source code into the inferior. This beta release does not include @@ -18,16 +69,36 @@ * DWARF index cache: GDB can now automatically save indices of DWARF symbols on disk to speed up further loading of the same binaries. +* Ada task switching is now supported on aarch64-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. + * GDB in batch mode now exits with status 1 if the last command to be executed failed. -* Changes to the "frame", "select-frame", and "info frame" CLI - commands. These commands all now take a frame specification which - is either a frame level, or one of the keywords 'level', 'address', - 'function', or 'view' followed by a parameter. Selecting a frame by - address, or viewing a frame outside the current backtrace now - requires the use of a keyword. Selecting a frame by level is - unchanged. The MI comment "-stack-select-frame" is unchanged. +* The RISC-V target now supports target descriptions. + +* System call catchpoints now support system call aliases on FreeBSD. + When the ABI of a system call changes in FreeBSD, this is + implemented by leaving a compatibility system call using the old ABI + at the existing number and allocating a new system call number for + the new ABI. For example, FreeBSD 12 altered the layout of 'struct + kevent' used by the 'kevent' system call. As a result, FreeBSD 12 + kernels ship with both 'kevent' and 'freebsd11_kevent' system calls. + The 'freebsd11_kevent' system call is assigned an alias of 'kevent' + so that a system call catchpoint for the 'kevent' system call will + catch invocations of both the 'kevent' and 'freebsd11_kevent' + binaries. This ensures that 'kevent' system calls are caught for + binaries using either the old or new ABIs. + +* Terminal styling is now available for the CLI and the TUI. GNU + Source Highlight can additionally be used to provide styling of + source code snippets. See the "set style" commands, below, for more + information. + +* Removed support for old demangling styles arm, edg, gnu, hp and + lucid. * New commands @@ -69,18 +140,81 @@ info proc files * Changed commands +Changes to the "frame", "select-frame", and "info frame" CLI commands. + These commands all now take a frame specification which + is either a frame level, or one of the keywords 'level', 'address', + 'function', or 'view' followed by a parameter. Selecting a frame by + address, or viewing a frame outside the current backtrace now + requires the use of a keyword. Selecting a frame by level is + unchanged. The MI comment "-stack-select-frame" is unchanged. + target remote FILENAME target extended-remote FILENAME If FILENAME is a Unix domain socket, GDB will attempt to connect to this socket instead of opening FILENAME as a character device. +info args [-q] [-t TYPEREGEXP] [NAMEREGEXP] +info functions [-q] [-t TYPEREGEXP] [NAMEREGEXP] +info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP] +info variables [-q] [-t TYPEREGEXP] [NAMEREGEXP] + These commands can now print only the searched entities + matching the provided regexp(s), giving a condition + on the entity names or entity types. The flag -q disables + printing headers or informations messages. + +info functions +info types +info variables +rbreak + These commands now determine the syntax for the shown entities + according to the language chosen by `set language'. In particular, + `set language auto' means to automatically choose the language of + the shown entities. + thread apply [all | COUNT | -COUNT] [FLAG]... COMMAND The 'thread apply' command accepts new FLAG arguments. FLAG arguments allow to control what output to produce and how to handle errors raised when applying COMMAND to a thread. +set tui tab-width NCHARS +show tui tab-width NCHARS + "set tui tab-width" replaces the "tabset" command, which has been deprecated. + +set style enabled [on|off] +show style enabled + Enable or disable terminal styling. Styling is enabled by default + on most hosts, but disabled by default when in batch mode. + +set style sources [on|off] +show style sources + Enable or disable source code styling. Source code styling is + enabled by default, but only takes effect if styling in general is + enabled, and if GDB was linked with GNU Source Highlight. + +set style filename foreground COLOR +set style filename background COLOR +set style filename intensity VALUE + Control the styling of file names. + +set style function foreground COLOR +set style function background COLOR +set style function intensity VALUE + Control the styling of function names. + +set style variable foreground COLOR +set style variable background COLOR +set style variable intensity VALUE + Control the styling of variable names. + +set style address foreground COLOR +set style address background COLOR +set style address intensity VALUE + Control the styling of addresses. + * MI changes + ** The default version of the MI interpreter is now 3 (-i=mi3). + ** The '-data-disassemble' MI command now accepts an '-a' option to disassemble the whole function surrounding the given program counter value or function name. Support for this feature can be @@ -90,24 +224,68 @@ thread apply [all | COUNT | -COUNT] [FLAG]... COMMAND ** Command responses and notifications that include a frame now include the frame's architecture in a new "arch" attribute. + ** The output of information about multi-location breakpoints (which is + syntactically incorrect in MI 2) has changed in MI 3. This affects + the following commands and events: + + - -break-insert + - -break-info + - =breakpoint-created + - =breakpoint-modified + + The -fix-multi-location-breakpoint-output command can be used to enable + this behavior with previous MI versions. + * New native configurations GNU/Linux/RISC-V riscv*-*-linux* +FreeBSD/riscv riscv*-*-freebsd* * New targets GNU/Linux/RISC-V riscv*-*-linux* CSKY ELF csky*-*-elf CSKY GNU/LINUX csky*-*-linux +FreeBSD/riscv riscv*-*-freebsd* +NXP S12Z s12z-*-elf +GNU/Linux/OpenRISC or1k*-*-linux* + +* Removed targets + +GDB no longer supports native debugging on versions of MS-Windows +before Windows XP. * Python API + ** GDB no longer supports Python versions less than 2.6. + ** The gdb.Inferior type has a new 'progspace' property, which is the program space associated to that inferior. ** The gdb.Progspace type has a new 'objfiles' method, which returns the list of objfiles associated to that program space. + ** gdb.SYMBOL_LOC_COMMON_BLOCK, gdb.SYMBOL_MODULE_DOMAIN, and + gdb.SYMBOL_COMMON_BLOCK_DOMAIN were added to reflect changes to + the gdb core. + + ** gdb.SYMBOL_VARIABLES_DOMAIN, gdb.SYMBOL_FUNCTIONS_DOMAIN, and + gdb.SYMBOL_TYPES_DOMAIN are now deprecated. These were never + correct and did not work properly. + + ** The gdb.Value type has a new constructor, which is used to construct a + gdb.Value from a Python buffer object and a gdb.Type. + +* Configure changes + +--enable-ubsan + + Enable or disable the undefined behavior sanitizer. This is + disabled by default, but passing --enable-ubsan=yes or + --enable-ubsan=auto to configure will enable it. Enabling this can + cause a performance penalty. The undefined behavior sanitizer was + first introduced in GCC 4.9. + *** Changes in GDB 8.2 * The 'set disassembler-options' command now supports specifying options