X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2FNEWS;h=babd18abf4d9304b0655b8a2b9fba0d507c90c68;hb=78664fa36abb48b1c21151dfb95143c39310fbbe;hp=8382026e8b232be86aa0736491c4f5819053ea4c;hpb=b94129534130a6be28728f08992de263dcc7fe7d;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/NEWS b/gdb/NEWS index 8382026e8b..babd18abf4 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -1,7 +1,305 @@ What has changed in GDB? (Organized release by release) -*** Changes since GDB 6.8 +*** Changes since GDB 7.1 + +* Python scripting + +The GDB Python API now has access to symbols, symbol tables, and +frame's code blocks. + +*** Changes in GDB 7.1 + +* C++ Improvements + + ** Namespace Support + + GDB now supports importing of namespaces in C++. This enables the + user to inspect variables from imported namespaces. Support for + namepace aliasing has also been added. So, if a namespace is + aliased in the current scope (e.g. namepace C=A; ) the user can + print variables using the alias (e.g. (gdb) print C::x). + + ** Bug Fixes + + All known bugs relating to the printing of virtual base class were + fixed. It is now possible to call overloaded static methods using a + qualified name. + + ** Cast Operators + + The C++ cast operators static_cast<>, dynamic_cast<>, const_cast<>, + and reinterpret_cast<> are now handled by the C++ expression parser. + +* New targets + +Xilinx MicroBlaze microblaze-*-* +Renesas RX rx-*-elf + +* New Simulators + +Xilinx MicroBlaze microblaze +Renesas RX rx + +* Multi-program debugging. + + GDB now has support for multi-program (a.k.a. multi-executable or + multi-exec) debugging. This allows for debugging multiple inferiors + simultaneously each running a different program under the same GDB + session. See "Debugging Multiple Inferiors and Programs" in the + manual for more information. This implied some user visible changes + in the multi-inferior support. For example, "info inferiors" now + lists inferiors that are not running yet or that have exited + already. See also "New commands" and "New options" below. + +* New tracing features + + GDB's tracepoint facility now includes several new features: + + ** Trace state variables + + GDB tracepoints now include support for trace state variables, which + are variables managed by the target agent during a tracing + experiment. They are useful for tracepoints that trigger each + other, so for instance one tracepoint can count hits in a variable, + and then a second tracepoint has a condition that is true when the + count reaches a particular value. Trace state variables share the + $-syntax of GDB convenience variables, and can appear in both + tracepoint actions and condition expressions. Use the "tvariable" + command to create, and "info tvariables" to view; see "Trace State + Variables" in the manual for more detail. + + ** Fast tracepoints + + GDB now includes an option for defining fast tracepoints, which + targets may implement more efficiently, such as by installing a jump + into the target agent rather than a trap instruction. The resulting + speedup can be by two orders of magnitude or more, although the + tradeoff is that some program locations on some target architectures + might not allow fast tracepoint installation, for instance if the + instruction to be replaced is shorter than the jump. To request a + fast tracepoint, use the "ftrace" command, with syntax identical to + the regular trace command. + + ** Disconnected tracing + + It is now possible to detach GDB from the target while it is running + a trace experiment, then reconnect later to see how the experiment + is going. In addition, a new variable disconnected-tracing lets you + tell the target agent whether to continue running a trace if the + connection is lost unexpectedly. + + ** Trace files + + GDB now has the ability to save the trace buffer into a file, and + then use that file as a target, similarly to you can do with + corefiles. You can select trace frames, print data that was + collected in them, and use tstatus to display the state of the + tracing run at the moment that it was saved. To create a trace + file, use "tsave ", and to use it, do "target tfile + ". + +* Changed commands + +disassemble + The disassemble command, when invoked with two arguments, now requires + the arguments to be comma-separated. + +info variables + The info variables command now displays variable definitions. Files + which only declare a variable are not shown. + +source + The source command is now capable of sourcing Python scripts. + This feature is dependent on the debugger being build with Python + support. + + Related to this enhancement is also the introduction of a new command + "set script-extension" (see below). + +* New commands (for set/show, see "New options" below) + +record save [] + Save a file (in core file format) containing the process record + execution log for replay debugging at a later time. + +record restore + Restore the process record execution log that was saved at an + earlier time, for replay debugging. + +add-inferior [-copies ] [-exec ] + Add a new inferior. + +clone-inferior [-copies ] [ID] + Make a new inferior ready to execute the same program another + inferior has loaded. + +remove-inferior ID + Remove an inferior. + +maint info program-spaces + List the program spaces loaded into GDB. + +set remote interrupt-sequence [Ctrl-C | BREAK | BREAK-g] +show remote interrupt-sequence + Allow the user to select one of ^C, a BREAK signal or BREAK-g + as the sequence to the remote target in order to interrupt the execution. + Ctrl-C is a default. Some system prefers BREAK which is high level of + serial line for some certain time. Linux kernel prefers BREAK-g, a.k.a + Magic SysRq g. It is BREAK signal and character 'g'. + +set remote interrupt-on-connect [on | off] +show remote interrupt-on-connect + When interrupt-on-connect is ON, gdb sends interrupt-sequence to + remote target when gdb connects to it. This is needed when you debug + Linux kernel. + +set remotebreak [on | off] +show remotebreak +Deprecated. Use "set/show remote interrupt-sequence" instead. + +tvariable $NAME [ = EXP ] + Create or modify a trace state variable. + +info tvariables + List trace state variables and their values. + +delete tvariable $NAME ... + Delete one or more trace state variables. + +teval EXPR, ... + Evaluate the given expressions without collecting anything into the + trace buffer. (Valid in tracepoint actions only.) + +ftrace FN / FILE:LINE / *ADDR + Define a fast tracepoint at the given function, line, or address. + +* New expression syntax + + GDB now parses the 0b prefix of binary numbers the same way as GCC does. + GDB now parses 0b101010 identically with 42. + +* New options + +set follow-exec-mode new|same +show follow-exec-mode + Control whether GDB reuses the same inferior across an exec call or + creates a new one. This is useful to be able to restart the old + executable after the inferior having done an exec call. + +set default-collect EXPR, ... +show default-collect + Define a list of expressions to be collected at each tracepoint. + This is a useful way to ensure essential items are not overlooked, + such as registers or a critical global variable. + +set disconnected-tracing +show disconnected-tracing + If set to 1, the target is instructed to continue tracing if it + loses its connection to GDB. If 0, the target is to stop tracing + upon disconnection. + +set script-extension off|soft|strict +show script-extension + If set to "off", the debugger does not perform any script language + recognition, and all sourced files are assumed to be GDB scripts. + If set to "soft" (the default), files are sourced according to + filename extension, falling back to GDB scripts if the first + evaluation failed. + If set to "strict", files are sourced according to filename extension. + +set ada trust-PAD-over-XVS on|off +show ada trust-PAD-over-XVS + If off, activate a workaround against a bug in the debugging information + generated by the compiler for PAD types (see gcc/exp_dbug.ads in + the GCC sources for more information about the GNAT encoding and + PAD types in particular). It is always safe to set this option to + off, but this introduces a slight performance penalty. The default + is on. + +* Python API Improvements + + ** GDB provides the new class gdb.LazyString. This is useful in + some pretty-printing cases. The new method gdb.Value.lazy_string + provides a simple way to create objects of this type. + + ** The fields returned by gdb.Type.fields now have an + `is_base_class' attribute. + + ** The new method gdb.Type.range returns the range of an array type. + + ** The new method gdb.parse_and_eval can be used to parse and + evaluate an expression. + +* New remote packets + +QTDV + Define a trace state variable. + +qTV + Get the current value of a trace state variable. + +QTDisconnected + Set desired tracing behavior upon disconnection. + +qTfP, qTsP + Get data about the tracepoints currently in use. + +* Bug fixes + +Process record now works correctly with hardware watchpoints. + +Multiple bug fixes have been made to the mips-irix port, making it +much more reliable. In particular: + - Debugging threaded applications is now possible again. Previously, + GDB would hang while starting the program, or while waiting for + the program to stop at a breakpoint. + - Attaching to a running process no longer hangs. + - An error occurring while loading a core file has been fixed. + - Changing the value of the PC register now works again. This fixes + problems observed when using the "jump" command, or when calling + a function from GDB, or even when assigning a new value to $pc. + - With the "finish" and "return" commands, the return value for functions + returning a small array is now correctly printed. + - It is now possible to break on shared library code which gets executed + during a shared library init phase (code executed while executing + their .init section). Previously, the breakpoint would have no effect. + - GDB is now able to backtrace through the signal handler for + non-threaded programs. + +PIE (Position Independent Executable) programs debugging is now supported. +This includes debugging execution of PIC (Position Independent Code) shared +libraries although for that, it should be possible to run such libraries as an +executable program. + +*** Changes in GDB 7.0 + +* 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 @@ -21,6 +319,9 @@ 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. +* "info sharedlibrary" now takes an optional regex of libraries to show, +and it now reports if a shared library has no debugging information. + * Commands `set debug-file-directory', `set solib-search-path' and `set args' now complete on file names. @@ -35,13 +336,21 @@ For instance, consider: 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. +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 @@ -129,6 +438,13 @@ GDB will now correctly handle all of: - 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 @@ -153,8 +469,66 @@ GDB will now correctly handle all of: * 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. + +* Non-stop mode debugging. + + For some targets, GDB now supports an optional mode of operation in + which you can examine stopped threads while other threads continue + to execute freely. This is referred to as non-stop mode, with the + old mode referred to as all-stop mode. See the "Non-Stop Mode" + section in the user manual for more information. + + To be able to support remote non-stop debugging, a remote stub needs + to implement the non-stop mode remote protocol extensions, as + described in the "Remote Non-Stop" section of the user manual. The + GDB remote stub, gdbserver, has been adjusted to support these + extensions on linux targets. + * New commands (for set/show, see "New options" below) +catch syscall [NAME(S) | NUMBER(S)] + Catch system calls. Arguments, which should be names of system + calls or their numbers, mean catch only those syscalls. Without + arguments, every syscall will be caught. When the inferior issues + any of the specified syscalls, GDB will stop and announce the system + call, both when it is called and when its call returns. This + feature is currently available with a native GDB running on the + Linux Kernel, under the following architectures: x86, x86_64, + PowerPC and PowerPC64. + find [/size-char] [/max-count] start-address, end-address|+search-space-size, val1 [, val2, ...] Search memory for a sequence of bytes. @@ -175,16 +549,33 @@ macro undef 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. @@ -213,6 +604,14 @@ show remote write-siginfo-object Control use of remote protocol `qXfer:siginfo:write' (write-siginfo-object) packet. +set remote reverse-continue +show remote reverse-continue + Control use of remote protocol 'bc' (reverse-continue) packet. + +set remote reverse-step +show remote reverse-step + Control use of remote protocol 'bs' (reverse-step) packet. + set displaced-stepping show displaced-stepping Control displaced stepping mode. Displaced stepping is a way to @@ -288,6 +687,60 @@ show tcp connect-timeout 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. + +set stack-cache +show stack-cache + Use more aggressive caching for accesses to the stack. This improves + performance of remote debugging (particularly backtraces) without + affecting correctness. + +set interactive-mode (on|off|auto) +show interactive-mode + Control whether GDB runs in interactive mode (on) or not (off). + When in interactive mode, GDB waits for the user to answer all + queries. Otherwise, GDB does not wait and assumes the default + answer. When set to auto (the default), GDB determines which + mode to use based on the stdin settings. + +* 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* @@ -296,8 +749,10 @@ 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.