X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2FNEWS;h=4798b7b4ffe45c99835710468b63c0f4df2054d3;hb=7fda53d583bf5baaa15ccdea78c48bf57b205dad;hp=37613aa74f3ca324babb5b049c0fa6db9ae2d8d5;hpb=248c9dbc16860034ae6848b04fffe524e2b8cd38;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/NEWS b/gdb/NEWS index 37613aa74f..4798b7b4ff 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -1,10 +1,362 @@ What has changed in GDB? (Organized release by release) -*** Changes since GDB 7.2 +*** Changes since GDB 7.4 * Python scripting + ** The "maint set python print-stack on|off" is now deleted. + + ** A new class, gdb.printing.FlagEnumerationPrinter, can be used to + apply "flag enum"-style pretty-printing to any enum. + +* GDBserver now supports stdio connections. + E.g. (gdb) target remote | ssh myhost gdbserver - hello + +* The binary "gdbtui" can no longer be built or installed. + Use "gdb -tui" instead. + +* GDB will now print "flag" enums specially. A flag enum is one where + all the enumerator values have no bits in common when pairwise + "and"ed. When printing a value whose type is a flag enum, GDB will + show all the constants, e.g., for enum E { ONE = 1, TWO = 2}: + (gdb) print (enum E) 3 + $1 = (ONE | TWO) + +* The filename part of a linespec will now match trailing components + of a source file name. For example, "break gcc/expr.c:1000" will + now set a breakpoint in build/gcc/expr.c, but not + build/libcpp/expr.c. + +* The "info proc" and "generate-core-file" commands will now also + work on remote targets connected to GDBserver on Linux. + +* The command "info catch" has been removed. It has been disabled + since December 2007. + +* New commands + + ** "catch load" and "catch unload" can be used to stop when a shared + library is loaded or unloaded, respectively. + +*** Changes in GDB 7.4 + +* GDB now handles ambiguous linespecs more consistently; the existing + FILE:LINE support has been expanded to other types of linespecs. A + breakpoint will now be set on all matching locations in all + inferiors, and locations will be added or removed according to + inferior changes. + +* GDB now allows you to skip uninteresting functions and files when + stepping with the "skip function" and "skip file" commands. + +* GDB has two new commands: "set remote hardware-watchpoint-length-limit" + and "show remote hardware-watchpoint-length-limit". These allows to + set or show the maximum length limit (in bytes) of a remote + target hardware watchpoint. + + This allows e.g. to use "unlimited" hardware watchpoints with the + gdbserver integrated in Valgrind version >= 3.7.0. Such Valgrind + watchpoints are slower than real hardware watchpoints but are + significantly faster than gdb software watchpoints. + +* Python scripting + + ** The register_pretty_printer function in module gdb.printing now takes + an optional `replace' argument. If True, the new printer replaces any + existing one. + + ** The "maint set python print-stack on|off" command has been + deprecated and will be deleted in GDB 7.5. + A new command: "set python print-stack none|full|message" has + replaced it. Additionally, the default for "print-stack" is + now "message", which just prints the error message without + the stack trace. + + ** A prompt substitution hook (prompt_hook) is now available to the + Python API. + + ** A new Python module, gdb.prompt has been added to the GDB Python + modules library. This module provides functionality for + escape sequences in prompts (used by set/show + extended-prompt). These escape sequences are replaced by their + corresponding value. + + ** Python commands and convenience-functions located in + 'data-directory'/python/gdb/command and + 'data-directory'/python/gdb/function are now automatically loaded + on GDB start-up. + + ** Blocks now provide four new attributes. global_block and + static_block will return the global and static blocks + respectively. is_static and is_global are boolean attributes + that indicate if the block is one of those two types. + + ** Symbols now provide the "type" attribute, the type of the symbol. + + ** The "gdb.breakpoint" function has been deprecated in favor of + "gdb.breakpoints". + + ** A new class "gdb.FinishBreakpoint" is provided to catch the return + of a function. This class is based on the "finish" command + available in the CLI. + + ** Type objects for struct and union types now allow access to + the fields using standard Python dictionary (mapping) methods. + For example, "some_type['myfield']" now works, as does + "some_type.items()". + + ** A new event "gdb.new_objfile" has been added, triggered by loading a + new object file. + + ** A new function, "deep_items" has been added to the gdb.types + module in the GDB Python modules library. This function returns + an iterator over the fields of a struct or union type. Unlike + the standard Python "iteritems" method, it will recursively traverse + any anonymous fields. + +* MI changes + + ** "*stopped" events can report several new "reason"s, such as + "solib-event". + + ** Breakpoint changes are now notified using new async records, like + "=breakpoint-modified". + + ** New command -ada-task-info. + +* libthread-db-search-path now supports two special values: $sdir and $pdir. + $sdir specifies the default system locations of shared libraries. + $pdir specifies the directory where the libpthread used by the application + lives. + + GDB no longer looks in $sdir and $pdir after it has searched the directories + mentioned in libthread-db-search-path. If you want to search those + directories, they must be specified in libthread-db-search-path. + The default value of libthread-db-search-path on GNU/Linux and Solaris + systems is now "$sdir:$pdir". + + $pdir is not supported by gdbserver, it is currently ignored. + $sdir is supported by gdbserver. + +* New configure option --with-iconv-bin. + When using the internationalization support like the one in the GNU C + library, GDB will invoke the "iconv" program to get a list of supported + character sets. If this program lives in a non-standard location, one can + use this option to specify where to find it. + +* When natively debugging programs on PowerPC BookE processors running + a Linux kernel version 2.6.34 or later, GDB supports masked hardware + watchpoints, which specify a mask in addition to an address to watch. + The mask specifies that some bits of an address (the bits which are + reset in the mask) should be ignored when matching the address accessed + by the inferior against the watchpoint address. See the "PowerPC Embedded" + section in the user manual for more details. + +* The new option --once causes GDBserver to stop listening for connections once + the first connection is made. The listening port used by GDBserver will + become available after that. + +* New commands "info macros" and "alias" have been added. + +* New function parameters suffix @entry specifies value of function parameter + at the time the function got called. Entry values are available only since + gcc version 4.7. + +* New commands + +!SHELL COMMAND + "!" is now an alias of the "shell" command. + Note that no space is needed between "!" and SHELL COMMAND. + +* Changed commands + +watch EXPRESSION mask MASK_VALUE + The watch command now supports the mask argument which allows creation + of masked watchpoints, if the current architecture supports this feature. + +info auto-load-scripts [REGEXP] + This command was formerly named "maintenance print section-scripts". + It is now generally useful and is no longer a maintenance-only command. + +info macro [-all] [--] MACRO + The info macro command has new options `-all' and `--'. The first for + printing all definitions of a macro. The second for explicitly specifying + the end of arguments and the beginning of the macro name in case the macro + name starts with a hyphen. + +collect[/s] EXPRESSIONS + The tracepoint collect command now takes an optional modifier "/s" + that directs it to dereference pointer-to-character types and + collect the bytes of memory up to a zero byte. The behavior is + similar to what you see when you use the regular print command on a + string. An optional integer following the "/s" sets a bound on the + number of bytes that will be collected. + +tstart [NOTES] + The trace start command now interprets any supplied arguments as a + note to be recorded with the trace run, with an effect similar to + setting the variable trace-notes. + +tstop [NOTES] + The trace stop command now interprets any arguments as a note to be + mentioned along with the tstatus report that the trace was stopped + with a command. The effect is similar to setting the variable + trace-stop-notes. + +* Tracepoints can now be enabled and disabled at any time after a trace + experiment has been started using the standard "enable" and "disable" + commands. It is now possible to start a trace experiment with no enabled + tracepoints; GDB will display a warning, but will allow the experiment to + begin, assuming that tracepoints will be enabled as needed while the trace + is running. + +* Fast tracepoints on 32-bit x86-architectures can now be placed at + locations with 4-byte instructions, when they were previously + limited to locations with instructions of 5 bytes or longer. + +* New options + +set extended-prompt +show extended-prompt + Set the GDB prompt, and allow escape sequences to be inserted to + display miscellaneous information (see 'help set extended-prompt' + for the list of sequences). This prompt (and any information + accessed through the escape sequences) is updated every time the + prompt is displayed. + +set print entry-values (both|compact|default|if-needed|no|only|preferred) +show print entry-values + Set printing of frame argument values at function entry. In some cases + GDB can determine the value of function argument which was passed by the + function caller, even if the value was modified inside the called function. + +set debug entry-values +show debug entry-values + Control display of debugging info for determining frame argument values at + function entry and virtual tail call frames. + +set basenames-may-differ +show basenames-may-differ + Set whether a source file may have multiple base names. + (A "base name" is the name of a file with the directory part removed. + Example: The base name of "/home/user/hello.c" is "hello.c".) + If set, GDB will canonicalize file names (e.g., expand symlinks) + before comparing them. Canonicalization is an expensive operation, + but it allows the same file be known by more than one base name. + If not set (the default), all source files are assumed to have just + one base name, and gdb will do file name comparisons more efficiently. + +set trace-user +show trace-user +set trace-notes +show trace-notes + Set a user name and notes for the current and any future trace runs. + This is useful for long-running and/or disconnected traces, to + inform others (or yourself) as to who is running the trace, supply + contact information, or otherwise explain what is going on. + +set trace-stop-notes +show trace-stop-notes + Set a note attached to the trace run, that is displayed when the + trace has been stopped by a tstop command. This is useful for + instance as an explanation, if you are stopping a trace run that was + started by someone else. + +* New remote packets + +QTEnable + + Dynamically enable a tracepoint in a started trace experiment. + +QTDisable + + Dynamically disable a tracepoint in a started trace experiment. + +QTNotes + + Set the user and notes of the trace run. + +qTP + + Query the current status of a tracepoint. + +qTMinFTPILen + + Query the minimum length of instruction at which a fast tracepoint may + be placed. + +* Dcache size (number of lines) and line-size are now runtime-configurable + via "set dcache line" and "set dcache line-size" commands. + +* New targets + +Texas Instruments TMS320C6x tic6x-*-* + +* New Simulators + +Renesas RL78 rl78-*-elf + +*** Changes in GDB 7.3.1 + +* The build failure for NetBSD and OpenBSD targets have now been fixed. + +*** Changes in GDB 7.3 + +* GDB has a new command: "thread find [REGEXP]". + It finds the thread id whose name, target id, or thread extra info + matches the given regular expression. + +* The "catch syscall" command now works on mips*-linux* targets. + +* The -data-disassemble MI command now supports modes 2 and 3 for + dumping the instruction opcodes. + +* New command line options + +-data-directory DIR Specify DIR as the "data-directory". + This is mostly for testing purposes. + +* The "maint set python auto-load on|off" command has been renamed to + "set auto-load-scripts on|off". + +* GDB has a new command: "set directories". + It is like the "dir" command except that it replaces the + source path list instead of augmenting it. + +* GDB now understands thread names. + + On GNU/Linux, "info threads" will display the thread name as set by + prctl or pthread_setname_np. + + There is also a new command, "thread name", which can be used to + assign a name internally for GDB to display. + +* OpenCL C + Initial support for the OpenCL C language (http://www.khronos.org/opencl) + has been integrated into GDB. + +* Python scripting + + ** The function gdb.Write now accepts an optional keyword 'stream'. + This keyword, when provided, will direct the output to either + stdout, stderr, or GDB's logging output. + + ** Parameters can now be be sub-classed in Python, and in particular + you may implement the get_set_doc and get_show_doc functions. + This improves how Parameter set/show documentation is processed + and allows for more dynamic content. + + ** Symbols, Symbol Table, Symbol Table and Line, Object Files, + Inferior, Inferior Thread, Blocks, and Block Iterator APIs now + have an is_valid method. + + ** Breakpoints can now be sub-classed in Python, and in particular + you may implement a 'stop' function that is executed each time + the inferior reaches that breakpoint. + + ** New function gdb.lookup_global_symbol looks up a global symbol. + ** GDB values in Python are now callable if the value represents a function. For example, if 'some_value' represents a function that takes two integer parameters and returns a value, you can call @@ -12,6 +364,35 @@ result = some_value (10,20) + ** Module gdb.types has been added. + It contains a collection of utilities for working with gdb.Types objects: + get_basic_type, has_field, make_enum_dict. + + ** Module gdb.printing has been added. + It contains utilities for writing and registering pretty-printers. + New classes: PrettyPrinter, SubPrettyPrinter, + RegexpCollectionPrettyPrinter. + New function: register_pretty_printer. + + ** New commands "info pretty-printers", "enable pretty-printer" and + "disable pretty-printer" have been added. + + ** gdb.parameter("directories") is now available. + + ** New function gdb.newest_frame returns the newest frame in the + selected thread. + + ** The gdb.InferiorThread class has a new "name" attribute. This + holds the thread's name. + + ** Python Support for Inferior events. + Python scripts can add observers to be notified of events + occurring in the process being debugged. + The following events are currently supported: + - gdb.events.cont Continue event. + - gdb.events.exited Inferior exited event. + - gdb.events.stop Signal received, and Breakpoint hit events. + * C++ Improvements: ** GDB now puts template parameters in scope when debugging in an @@ -23,6 +404,19 @@ feature requires proper debuginfo support from the compiler; it was added to GCC 4.5. + ** The motion commands "next", "finish", "until", and "advance" now + work better when exceptions are thrown. In particular, GDB will + no longer lose control of the inferior; instead, the GDB will + stop the inferior at the point at which the exception is caught. + This functionality requires a change in the exception handling + code that was introduced in GCC 4.5. + +* GDB now follows GCC's rules on accessing volatile objects when + reading or writing target state during expression evaluation. + One notable difference to prior behavior is that "print x = 0" + no longer generates a read of x; the value of the assignment is + now always taken directly from the value being assigned. + * GDB now has some support for using labels in the program's source in linespecs. For instance, you can use "advance label" to continue execution to a label. @@ -62,9 +456,39 @@ libthread_db library with the "set libthread-db-search-path" command. See the user manual for more details on this command. +* When natively debugging programs on PowerPC BookE processors running + a Linux kernel version 2.6.34 or later, GDB supports ranged breakpoints, + which stop execution of the inferior whenever it executes an instruction + at any address within the specified range. See the "PowerPC Embedded" + section in the user manual for more details. + * New features in the GDB remote stub, GDBserver - ** GDBserver is now supported on PowerPC LynxOS 4.x. + ** GDBserver is now supported on PowerPC LynxOS (versions 4.x and 5.x), + and i686 LynxOS (version 5.x). + + ** GDBserver is now supported on Blackfin Linux. + +* New native configurations + +ia64 HP-UX ia64-*-hpux* + +* New targets: + +Analog Devices, Inc. Blackfin Processor bfin-* + +* Ada task switching is now supported on sparc-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. + +* Guile support was removed. + +* New features in the GNU simulator + + ** The --map-info flag lists all known core mappings. + + ** CFI flashes may be simulated via the "cfi" device. *** Changes in GDB 7.2