X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2FNEWS;h=bf98b15e1b97bad34f3ce67a8aab04965b101fc8;hb=81ecdfbb4d56574d58dba939f419722a7cf0de91;hp=b003f63149489e7834bd184a70b9cc128cae8b0b;hpb=255e7678a93693bd4d16cc3246442a1b8e11064e;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/NEWS b/gdb/NEWS index b003f63149..bf98b15e1b 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -1,7 +1,570 @@ What has changed in GDB? (Organized release by release) -*** Changes since GDB 6.6 +*** Changes since GDB 6.8 + +* 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. + +* 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. + +* The SH target utilizes the aforementioned change to distinguish between gcc +and Renesas calling convention. It also adds the new CLI commands +`set/show sh calling-convention'. + +* GDB can now read compressed debug sections, as produced by GNU gold +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. + +* The qXfer:libraries:read remote procotol packet now allows passing a +list of section offsets. + +* On GNU/Linux, GDB can now attach to stopped processes. Several race +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 class C { }; + C c; + +GDB will now correctly handle all of: + + ptype C + ptype C + ptype C + ptype C + +* 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. + + - 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. + + - 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. + +* New commands (for set/show, see "New options" below) + +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 print symbol-loading +show print symbol-loading + Control printing of symbol loading messages. + +set debug timestamp +show debug timestamp + 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 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 +unset exec-wrapper + Use a wrapper program to launch programs for debugging. + +set multiple-symbols (all|ask|cancel) +show multiple-symbols + The value of this variable can be changed to adjust the debugger behavior + when an expression or a breakpoint location contains an ambiguous symbol + name (an overloaded function name, for instance). + +set breakpoint always-inserted +show breakpoint always-inserted + Keep breakpoints always inserted in the target, as opposed to inserting + 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. + +* 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 + +NetBSD/hppa hppa*-*netbsd* +Xtensa GNU/Linux xtensa*-*-linux* + +* New targets + +NetBSD/hppa hppa*-*-netbsd* +Xtensa GNU/Lunux xtensa*-*-linux* + +* Change in command line behavior -- corefiles vs. process ids. + + When the '-p NUMBER' or '--pid NUMBER' options are used, and + attaching to process NUMBER fails, GDB no longer attempts to open a + core file named NUMBER. Attaching to a program using the -c option + is no longer supported. Instead, use the '-p' or '--pid' options. + +* GDB can now be built as a native debugger for debugging Windows x86 +(mingw32) Portable Executable (PE) programs. + +* Pending breakpoints no longer change their number when their address +is resolved. + +* GDB now supports breakpoints with multiple locations, +including breakpoints on C++ constructors, inside C++ templates, +and in inlined functions. + +* GDB's ability to debug optimized code has been improved. GDB more +accurately identifies function bodies and lexical blocks that occupy +more than one contiguous range of addresses. + +* Target descriptions can now describe registers for PowerPC. + +* The GDB remote stub, gdbserver, now supports the AltiVec and SPE +registers on PowerPC targets. + +* The GDB remote stub, gdbserver, now supports thread debugging on GNU/Linux +targets even when the libthread_db library is not available. + +* The GDB remote stub, gdbserver, now supports the new file transfer +commands (remote put, remote get, and remote delete). + +* The GDB remote stub, gdbserver, now supports run and attach in +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. + +* GDB now supports the --enable-targets= configure option to allow +building a single GDB executable that supports multiple remote +target architectures. + +* GDB now supports debugging C and C++ programs which use the +Decimal Floating Point extension. In addition, the PowerPC target +now has a set of pseudo-registers to inspect decimal float values +stored in two consecutive float registers. + +* The -break-insert MI command can optionally create pending +breakpoints now. + +* Improved support for debugging Ada +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 + - The '{type} ADDRESS' expression is now allowed on the left hand-side + of an assignment + - 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) +show print frame-arguments + The value of this variable can be changed to control which argument + values should be printed by the debugger when displaying a frame. + +remote put +remote get +remote delete + Transfer files to and from a remote target, and delete remote files. + +* New MI commands + +-target-file-put +-target-file-get +-target-file-delete + Transfer files to and from a remote target, and delete remote files. + +* New remote packets + +vFile:open: +vFile:close: +vFile:pread: +vFile:pwrite: +vFile:unlink: + Open, close, read, write, and delete files on the remote system. + +vAttach + Attach to an existing process on the remote system, in extended-remote + mode. + +vRun + Run a new process on the remote system, in extended-remote mode. + +*** Changes in GDB 6.7 + +* Resolved 101 resource leaks, null pointer dereferences, etc. in gdb, +bfd, libiberty and opcodes, as revealed by static analysis donated by +Coverity, Inc. (http://scan.coverity.com). * When looking up multiply-defined global symbols, GDB will now prefer the symbol definition in the current shared library if it was built using the @@ -23,12 +586,16 @@ frequency signals (e.g. SIGALRM) via the QPassSignals packet. target's overall architecture. GDB can read a description from a local file or over the remote serial protocol. -* Arrays of explicitly SIGNED or UNSIGNED CHARs are now printed as arrays -of numbers. +* Vectors of single-byte data use a new integer type which is not +automatically displayed as character or string data. + +* The /s format now works with the print command. It displays +arrays of single-byte integers and pointers to single-byte integers +as strings. * Target descriptions can now describe target-specific registers, for architectures which have implemented the support (currently -only ARM and MIPS). +only ARM, M68K, and MIPS). * GDB and the GDB remote stub, gdbserver, now support the XScale iWMMXt coprocessor. @@ -57,6 +624,9 @@ Windows and SymbianOS). * The GDB remote stub, gdbserver, now supports dynamic link libraries (DLLs) on Windows and Windows CE targets. +* GDB now supports a faster verification that a .debug file matches its binary +according to its build-id signature, if the signature is present. + * New commands set remoteflow