X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=gdb%2FNEWS;h=3a7e704cc65780b402dcea57693d08e883136f67;hb=7c1618381fdaa0697a211721ac31844f884797ac;hp=fc7914262ad415132d4123c03723e15aba25a825;hpb=cce0e92333b872cfe036aae611b6b5d61cf58186;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/NEWS b/gdb/NEWS index fc7914262a..3a7e704cc6 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -1,7 +1,411 @@ What has changed in GDB? (Organized release by release) -*** Changes since GDB 7.11 +*** Changes since GDB 8.0 + +* The 'ptype' command now accepts a '/o' flag, which prints the + offsets and sizes of fields in a struct, like the pahole(1) tool. + +* 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. + +* New command line options (gcore) + +-a + Dump all memory mappings. + +* 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. A parameter has been added to the Python + gdb.Breakpoint constructor to achieve the same result when creating + a breakpoint from Python. + +* 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. + + ** Python breakpoints can now accept explicit locations. See the + manual for a further description of this feature. + + +* 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. + +* Trait objects can now be inspected When debugging Rust code. This + requires compiler support which will appear in Rust 1.24. + +* 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. + +set dump-excluded-mappings +show dump-excluded-mappings + Control whether mappings marked with the VM_DONTDUMP flag should be + dumped when generating a core file. + +maint info selftests + List the registered selftests. + +starti + Start the debugged program stopping at the first instruction. + +set|show print type nested-type-limit + Set and show the limit of nesting level for nested types that the + type printer will show. + +* 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. + + For example, GCC 4.8 or later. + + It is no longer possible to build GDB or GDBserver with a C + 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 + now include redirection symbols supported by native Windows shells, + such as '<', '>', '>>', '2>&1', etc. This affects GDB commands such + as "run", "start", and "set args", as well as the corresponding MI + features. + +* Support for thread names on MS-Windows. + + GDB now catches and handles the special exception that programs + running on MS-Windows use to assign names to threads in the + debugger. + +* 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 + +* GDB and GDBserver now build with a C++ compiler by default. + + The --enable-build-with-cxx configure option is now enabled by + default. One must now explicitly configure with + --disable-build-with-cxx in order to build with a C compiler. This + option will be removed in a future release. + +* GDBserver now supports recording btrace without maintaining an active + GDB connection. + +* GDB now supports a negative repeat count in the 'x' command to examine + memory backward from the given address. For example: + + (gdb) bt + #0 Func1 (n=42, p=0x40061c "hogehoge") at main.cpp:4 + #1 0x400580 in main (argc=1, argv=0x7fffffffe5c8) at main.cpp:8 + (gdb) x/-5i 0x0000000000400580 + 0x40056a : mov %edi,-0x4(%rbp) + 0x40056d : mov %rsi,-0x10(%rbp) + 0x400571 : mov $0x40061c,%esi + 0x400576 : mov $0x2a,%edi + 0x40057b : + callq 0x400536 + +* 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. + +* New Python-based convenience function $_as_string(val), which returns + the textual representation of a value. This function is especially + useful to obtain the text label of an enum value. * Intel MPX bound violation handling. @@ -17,6 +421,97 @@ Bounds: [lower = 0x7fffffffc390, upper = 0x7fffffffc3a3] 0x0000000000400d7c in upper () at i386-mpx-sigsegv.c:68 +* Rust language support. + GDB now supports debugging programs written in the Rust programming + language. See https://www.rust-lang.org/ for more information about + Rust. + +* Support for running interpreters on specified input/output devices + + GDB now supports a new mechanism that allows frontends to provide + fully featured GDB console views, as a better alternative to + building such views on top of the "-interpreter-exec console" + command. See the new "new-ui" command below. With that command, + frontends can now start GDB in the traditional command-line mode + running in an embedded terminal emulator widget, and create a + separate MI interpreter running on a specified i/o device. In this + way, GDB handles line editing, history, tab completion, etc. in the + console all by itself, and the GUI uses the separate MI interpreter + for its own control and synchronization, invisible to the command + line. + +* The "catch syscall" command catches groups of related syscalls. + + The "catch syscall" command now supports catching a group of related + syscalls using the 'group:' or 'g:' prefix. + +* New commands + +skip -file file +skip -gfile file-glob-pattern +skip -function function +skip -rfunction regular-expression + A generalized form of the skip command, with new support for + glob-style file names and regular expressions for function names. + Additionally, a file spec and a function spec may now be combined. + +maint info line-table REGEXP + Display the contents of GDB's internal line table data struture. + +maint selftest + Run any GDB unit tests that were compiled in. + +new-ui INTERP TTY + Start a new user interface instance running INTERP as interpreter, + using the TTY file for input/output. + +* Python Scripting + + ** gdb.Breakpoint objects have a new attribute "pending", which + indicates whether the breakpoint is pending. + ** Three new breakpoint-related events have been added: + gdb.breakpoint_created, gdb.breakpoint_modified, and + gdb.breakpoint_deleted. + +signal-event EVENTID + Signal ("set") the given MS-Windows event object. This is used in + conjunction with the Windows JIT debugging (AeDebug) support, where + the OS suspends a crashing process until a debugger can attach to + it. Resuming the crashing process, in order to debug it, is done by + signalling an event. + +* Support for tracepoints and fast tracepoints on s390-linux and s390x-linux + was added in GDBserver, including JIT compiling fast tracepoint's + conditional expression bytecode into native code. + +* Support for various remote target protocols and ROM monitors has + been removed: + + target m32rsdi Remote M32R debugging over SDI + target mips MIPS remote debugging protocol + target pmon PMON ROM monitor + target ddb NEC's DDB variant of PMON for Vr4300 + target rockhopper NEC RockHopper variant of PMON + target lsi LSI variant of PMO + +* Support for tracepoints and fast tracepoints on powerpc-linux, + powerpc64-linux, and powerpc64le-linux was added in GDBserver, + including JIT compiling fast tracepoint's conditional expression + bytecode into native code. + +* MI async record =record-started now includes the method and format used for + recording. For example: + + =record-started,thread-group="i1",method="btrace",format="bts" + +* MI async record =thread-selected now includes the frame field. For example: + + =thread-selected,id="3",frame={level="0",addr="0x00000000004007c0"} + +* New targets + +Andes NDS32 nds32*-*-elf + *** Changes in GDB 7.11 * GDB now supports debugging kernel-based threads on FreeBSD. @@ -141,14 +636,6 @@ show max-value-size allocate for value contents. Prevents incorrect programs from causing GDB to allocate overly large buffers. Default is 64k. -skip -file file -skip -gfile file-glob-pattern -skip -function function -skip -rfunction regular-expression - A generalized form of the skip command, with new support for - glob-style file names and regular expressions for function names. - Additionally, a file spec and a function spec may now be combined. - * 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 @@ -204,15 +691,13 @@ QThreadEvents 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. +QCatchSyscalls + Enables/disables catching syscalls from the inferior process. + The remote stub reports support for this packet to GDB's qSupported query. syscall_entry stop reason Indicates that a syscall was just called. @@ -220,10 +705,6 @@ syscall_entry stop reason 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.