Red Hat Developer Toolset 2.0 is distributed with GDB 7.6, which provides a number of bug fixes and feature enhancements over the Red Hat Enterprise Linux system version and the version included in Red Hat Developer Toolset 1.1. Below is a comprehensive list of new features in this release.
The following features have been added since the release of GDB included in Red Hat Developer Toolset 1.1:
- Target
recordhas been renamed torecord-full. Consequently, you can now use therecord fullcommand to record or replay an execution log. In addition, the following commands have been renamed:- The
set record insn-number-maxandshow record insn-number-maxcommands have been renamed toset record full insn-number-maxandshow record full insn-number-max. - The
set record memory-queryandshow record memory-querycommands have been renamed toset record full memory-queryandshow record full memory-query. - The
set record stop-at-limitandshow record stop-at-limitcommands have been renamed toset record full stop-at-limitandshow record full stop-at-limit.
- A new record target,
record-btrace, has been added. This target uses hardware support to record the control flow of a process and can be enabled by using therecord btracecommand. This record target does not support replaying the execution.Important
Therecord-btracetarget is only available on Intel Atom processors and requires the Linux kernel in version 2.6.32 or later. - New
record instruction-historyandrecord function-call-historycommands have been added. These commands allow you to view information about an execution log without having to replay it. Therecord instruction-historycommand displays the execution history at instruction granularity and therecord function-call-historydisplays the execution history at function granularity. The commands are only supported by therecord btracecommand. - A new command line option,
-nh, has been added. This option allows you to disable automatic loading of the~/.gdbinitfile without disabling other initialization files. - The
-epochcommand line option has been removed. This option was used by GDB mode in Epoch, a deprecated clone of the Emacs text editor. - The
ptypeandwhatiscommands have been updated to accept an argument to control the type formatting. - The
info proccommand has been updated to work on some core files. - The
cdcommand has been enhanced and no longer requires a directory path as its first argument. When executed with no arguments, the command now changes to the home directory. - GDB now uses GNU v3 ABI as the default C++ ABI. This has been the default option for GCC since November 2000.
- The
info tracepointscommand has been enhanced to displayinstalled on targetornot installed on targetfor each non-pending location of a tracepoint. - A new command,
fo, has been added. This commands serves as a shorter variant of theforward-searchcommand. - A new command,
catch signal, has been added. This command can be used to catch signals by their names and is similar to thehandlecommand, but also allows you to attach additional conditions or commands. - A new command,
maint info bfds, has been added. This command can be used to list all binary files (BFDs) opened by GDB. - Two new commands,
python-interactive [and its shorter variantcommand]pi [, have been added. These commands allow you to start an interactive Python prompt or evaluate a Python command and print the results to standard output.command] - A new command,
py [, has been added. This command serves as a shorter variant of thecommand]python [command.command] - New
enable type-printer [andname...]disable type-printer [commands have been added. These commands allow you to enable or disable type printers.name...] - New
set print type methods on|offandshow print type methodscommands have been added. These commands allow you to control whether method declarations are displayed by theptypecommand. This functionality is enabled by default. - New
set print type typedefs on|offandshow print type typedefscommands have been added. These commands allow you to control whethertypedefdefinitions are displayed by theptypecommand. This functionality is enabled by default. - New
set filename-display basename|relative|absoluteandshow filename-displaycommands have been added. These commands allow you to control the way in which file names are displayed: thebasenameoption displays only the base name of a file name,relativedisplays a path relative to the compilation directory, andabsolutedisplays an absolute path to the file. The default option isrelativeto preserve the previous behavior. - New
set trace-buffer-sizeandshow trace-buffer-sizecommands have been added. These commands allow you to control the size of the trace buffer for a target. - New
set remote trace-buffer-size-packet auto|on|offandshow remote trace-buffer-size-packetcommands have been added. These commands allow you to control the use of the remote protocolQTBuffer:sizepacket. - New
set debug notificationandshow debug notificationcommands have been added. These commands allow you to control whether to display debugging information for asynchronous remote notification. This functionality is disabled by default. - New convenience functions
$_memeq(buf1, buf2, length),$_streq(str1, str2),$_strlen(str), and$_regex(str, regex)have been added.
The following changes have been made to the Python scripting support since the release of GDB included in Red Hat Developer Toolset 1.1:
- Users can now create vectors by using the
gdb.Type.vector()method. - The
atexit.register()method is now supported. - Users can now pretty-print types by using the Python API.
- In addition to Python 2.4 and later, GDB now also supports Python 3.
- A new class,
gdb.Architecture, has been added. This class exposes the internal representation of the architecture in the Python API. - A new method,
Frame.architecture, has been added. This method can be used to return thegdb.Architectureobject corresponding to the frame's architecture. - Frame filters and frame decorators have been added.
The following MI changes have been made since the release of GDB included in Red Hat Developer Toolset 1.1:
- A new async record,
=cmd-param-changed, has been added. This async record reports that a command parameter has changed. - A new async record,
=traceframe-changed, has been added. This async record reports that a trace frame has been changed by using thetfindcommand. - New async records
=tsv-created,=tsv-deleted, and=tsv-modifiedhave been added. These async records report that a trace state variable has been created, deleted, or modified. - New async records
=record-startedand=record-stoppedhave been added. These async records report that a process record has been started or stopped. - A new async record,
=memory-changed, has been added. This async record reports that the memory has changed. - When the source is requested, the
-data-disassemblecommand now includes a newfullnamefield containing an absolute path to the source file name. - A new optional parameter,
COUNT, has been added to the-data-write-memory-bytescommand. This parameter can be used to allow pattern filling of memory areas. - New commands
-catch-loadand-catch-unloadhave been added. These commands can be used to intercept shared libraryload/unloadevents. - The response to breakpoint commands and breakpoint async records now includes a new
installedfield. This field reports the current state of each non-pending tracepoint location: when the tracepoint is installed, the value of this field isy, otherwise the value isn. - The output of the
-trace-statuscommand now includes a newtrace-filefield. This field is only present when examining a trace file and contains the name of this file. - The
fullnamefiled is now always present along with thefilefield. This field is included even if GDB cannot find the file.
A number of new remote packets have been added since the release of GDB included in Red Hat Developer Toolset 1.1. See Table B.3, “New Remote Packets” for a complete list.
Table B.3. New Remote Packets
| Remote Packet | Description |
|---|---|
QTBuffer:size
|
Sets the size of the trace buffer. The remote stub reports support for this packet to the qSupported query.
|
Qbtrace:bts
|
Enables branch tracing based on Branch Trace Store (BTS) for the current thread. The remote stub reports support for this packet to the qSupported query.
|
Qbtrace:off
|
Disables branch tracing for the current thread. The remote stub reports support for this packet to the qSupported query.
|
qXfer:btrace:read
|
Reads the traced branches for the current thread. The remote stub reports support for this packet to the qSupported query.
|
qXfer:libraries-svr4:read's annex
|
The previously unused annex of the
qXfer:libraries-svr4:read packet is now used to support passing of an argument list. The remote stub reports support for this argument list to the qSupported query.
The defined arguments are
start and prev. These arguments are used to reduce work necessary for updating the library list and significantly speed up the process.
|
The features below have been added since the release of GDB included in Red Hat Enterprise Linux 6.4.
New Features
- Support for linespecs has been improved (in particular, a more consistent handling of ambiguous linespecs, some support for labels in the program's source, and FILE:LINE support now extends to further linespecs types). Breakpoints are now set on all matching locations in all inferiors and will be updated according to changes in the inferior.
- New inferior control commands
skip functionandskip filehave been added. These commands can be uses to skip certain functions and files when stepping. - The
info threadscommand now displays the thread name as set byprctlorpthread_setname_np. In addition, new commandsthread nameandthread findhave been added. Thethread namecommand accepts a name as an argument and can be used to set the name of the current thread. Thethread findcommand accepts a regular expression and allows the user to find threads that match it. - GDB now provides support for reading and writing a new
.gdb_indexsection. The commandgdb-add-indexcan be used to add.gdb_indexto a file, which allows GDB to load symbols from that file faster. Note that this feature is already present in Red Hat Enterprise Linux 6.1 and later. - The
watchcommand has been adapted to accept-locationas an optional argument. - Two new special values can now be used when specifying the current search path for
libthread_db:$sdirrepresents the default system locations of shared libraries, and$pdirstands for the directory with thelibthreadthat is used by the application. - A new command
info macroshas been added. This command accepts linespec as an optional argument and can be used to display the definitions of macros at that linespec location. Note that in order to do this, the debugged program must be compiled with the-g3command line option to have macro information available in it. - A new command
aliashas been added. This command can be used to create an alias of an existing command. - The
info macrocommand now accepts-alland--as valid options. - To display a function parameter's entry value (that is, the value at the time of function entry), the suffix
@entrycan be added to the parameter. GDB now displays@entryvalues in backtraces, if available. - New
set print entry-valuesandshow print entry-valuescommands have been added. Theset print entry-valuescommand acceptsboth,compact,default,if-needed,no,only, andpreferredas valid arguments and can be used to enable printing of function arguments at function entry. Theshow print entry-valuescommand can be used to determine whether this feature is enabled. - New
set debug entry-valuesandshow debug entry-valuescommands have been added. Theset debug entry-valuescommand can be used to enable printing of debugging information for determining frame argument values at function entry and virtual tail call frames. !has been added as an alias ofcommandshell.command- The
watchcommand now acceptsmaskas an argument. This can be used to create masked watchpoints.mask_value - New
set extended-promptandshow extended-promptcommands have been added. Theset extended-promptcommand enables support for a defined set of escape sequences that can be used to display various information. Theshow extended-promptcommand can be used to determine whether the extended prompt is enabled. - New
set basenames-may-differandshow basenames-may-differcommands have been added. Theset basenames-may-differcommand enables support for source files with multiple base names. Theshow basenames-may-differcommand can be used to determine whether this support is enabled. The default option isoffto allow faster GDB operations. - A new command line option
-ix(or--init-command) has been added. This option acts like-x(or--command), but is executed before loading the debugged program. - A new command line option
-iex(or--init-eval-command) has been added. This option acts like-ex(or--eval-command), but is executed before loading the debugged program. - The
info oscommand has been changed and can now display information on several objects managed by the operating system, in particular:- The
info os procgroupscommand lists process groups. - The
info os filescommand lists file descriptors. - The
info os socketscommand lists internet-domain sockets. - The
info os shmcommand lists shared-memory regions. - The
info os semaphorescommand lists semaphores. - The
info os msgcommand lists message queues. - The
info os modulescommand lists loaded kernel modules.
- GDB now has support for Static Defined Tracing (SDT) probes. Currently, the only implemented back end is for SystemTap probes (the
sys/sdt.hheader file). You can set a breakpoint by using the new-probe,-pstap, or-probe-stapoptions, and inspect the probe arguments by using the new$_probe_argfamily of convenience variables. - The
symbol-reloadingoption has been deleted. gdbservernow supports STDIO connections, for example:(gdb)
target remote | ssh myhost gdbserver - hello- GDB is now able to print flag enums. In a flag enum, all enumerator values have no bits in common when pairwise AND-ed. When GDB prints a value whose type is a flag enum, GDB shows all the constants; for example, for enum
E { ONE = 1, TWO = 2}:(gdb)
print (enum E) 3$1 = (ONE | TWO) - The file name part of a linespec now matches trailing components of a source file name. For example,
break gcc/expr.c:1000now sets a breakpoint in thebuild/gcc/expr.cfile, but not inbuild/libcpp/expr.c. - The
info procandgenerate-core-filecommands now work on remote targets connected togdbserver. - The command
info catchhas been removed. - The Ada-specific
catch exceptionandcatch assertcommands now accept conditions at the end of the command. - The
info static-tracepoint-markercommand now works on native targets with an in-process agent. - GDB can now set breakpoints on inline functions.
- The
.gdb_indexsection has been updated to include symbols for inline functions. By default, GDB now ignores older.gdb_indexsections until their.gdb_indexsections can be recreated. The new commandset use-deprecated-index-sections oncauses GDB to use any older.gdb_indexsections it finds. If this option is set, the ability to set breakpoints on inline functions is lost in symbol files with older.gdb_indexsections.The.gdb_indexsection has also been updated to record more information about each symbol. - GDB now provides Ada support for GDB/MI Variable Objects.
- GDB now supports
breakpoint always-inserted modein therecordtarget. gdbservernow supports evaluation of breakpoint conditions. Note that you can instruct GDB to send the breakpoint conditions in bytecode form, butgdbserveronly reports the breakpoint trigger to GDB when its condition evaluates to true.- The
z0/z1breakpoint insertion packets have been extended to carry a list of conditional expressions over to the remote stub depending on the condition evaluation mode. You can use theset remote conditional-breakpoints-packetcommand to control the use of this extension. - A new RSP packet
QProgramSignalscan be used to specify the signals the remote stub can pass to the debugged program without GDB involvement. - A new command
-info-oshas been added as the MI equivalent ofinfo os. - Output logs, such as
set loggingand related, now include MI output. - New
set use-deprecated-index-sections on|offandshow use-deprecated-index-sections on|offcommands have been added. These commands allow you to control the use of deprecated.gdb_indexsections. - New
catch loadandcatch unloadcommands have been added. These commands allow you to stop execution of a debugged program when a shared library is loaded or unloaded. - A new command
enable counthas been added. This command allows you to auto-disable a breakpoint after several hits. - A new command
info vtblhas been added. This command allows you to show the virtual method tables for C++ and Java objects. - A new command
explorehas been added. It supports two subcommandsexplore valueandexplore type, and allows you to recursively explore values and types of expressions. Note that this command is only available with Python-enabled GDB. - A new command
dprintfhas been added. This command allows you to create a dynamiclocation,format,args...printf-type breakpoint, which performs aprintf-like operation and then resumes program execution. - New
set print symbolandshow print symbolcommands have been added. These commands allow you to control whether GDB attempts to display the symbol, if any, that corresponds to addresses it prints. This functionality is enabled by default, but you can restore the previous behavior by running theset print symbol offcommand. - New
set breakpoint condition-evaluationandshow breakpoint condition-evaluationcommands have been added. These commands allow you to control whether breakpoint conditions are evaluated by GDB (thehostoption), or bygdbserver(thetargetoption). The default option,auto, chooses the most efficient available mode. - New
set dprintf-style gdb|call|agentandshow dprintf-stylecommands have been added. These commands allow you to control the way in which a dynamicprintfis performed: thegdboption requests a GDBprintfcommand,callcausesdprintfto call a function in the inferior, andagentrequests that the target agent such asgdbserverdoes the printing. - New
set dprintf-function,expressionshow dprintf-function,set dprintf-channel, andexpressionshow dprintf-channelcommands have been added. These commands allow you to set the function and optional first argument to the call when using thecallstyle of dynamicprintf. - New
set disconnected-dprintf on|offandshow disconnected-dprintfcommands have been added. These commands allow you to control whether agent-style dynamicprintfs continue to be in effect after GDB disconnects.
The following changes have been made to the C++ language support since the release of the GNU Debugger included in Red Hat Enterprise Linux 6.2:
- When debugging a template instantiation, parameters of the template are now put in scope.
The following changes have been made to the Python scripting support since the release of the GNU Debugger included in Red Hat Enterprise Linux 6.2:
- The
register_pretty_printerfunction in modulegdb.printingnow takes an optionalreplaceargument. - The
maint set python print-stack on|offcommand has been deprecated and will be deleted in GDB 7.5. The new commandset python print-stack none|full|messagehas replaced it. - A prompt substitution hook (
prompt_hook) is now available to the Python API. - A new Python module
gdb.prompthas been added to the GDB Python modules library. - Python commands and convenience-functions located in
anddata_directory/python/gdb/command/are now automatically loaded on GDB start-up.data_directory/python/gdb/function/ - Blocks now provide four new attributes:
global_block,static_block,is_static, andis_global. - The
gdb.breakpointfunction has been deprecated in favor ofgdb.breakpoints. - A new class
gdb.FinishBreakpointis provided. - Type objects for
structanduniontypes now allow access to the fields using standard Python dictionary (mapping) methods. - A new event
gdb.new_objfilehas been added. - A new function
deep_itemshas been added to thegdb.typesmodule. - The function
gdb.Writenow accepts an optional keywordstream. - Parameters can now be sub-classed in Python, which allows for implementation of the
get_set_docandget_show_docfunctions. - Symbols, Symbol Table, Symbol Table and Line, Object Files, Inferior, Inferior Thread, Blocks, and Block Iterator APIs now have an
is_validmethod. - Breakpoints can now be sub-classed in Python, which allows for implementation of the
stopfunction that is executed each time the inferior reaches that breakpoint. - A new function
gdb.lookup_global_symbolhas been added. This function can be used to look up a global symbol. - GDB values in Python are now callable if the value represents a function.
- A new module
gdb.typeshas been added. - A new module
gdb.printinghas been added. - New commands
info pretty-printers,enable pretty-printer, anddisable pretty-printerhave been added. - A new
gdb.parameter("directories")function call is now available. - A new function
gdb.newest_framehas been added. This function can be used to return the newest frame in the selected thread. - The
gdb.InferiorThreadclass now supports a newnameattribute. - Support for inferior events has been added. Python scripts can now add observers in order to be notified of events occurring in the process being debugged.
- GDB commands implemented in Python can now be put in the
gdb.COMMAND_USERcommand class. - The
maint set python print-stack on|offcommand has been removed and replaced byset python print-stack. - A new class
gdb.printing.FlagEnumerationPrinterhas been added. This class can be used to applyflag enum-style pretty-printing to enums. - The
gdb.lookup_symbolfunction now works correctly when there is no current frame. - The
gdb.Symbolobject now has an additional attributeline. This attribute holds the line number in the source at which the symbol was defined. - The
gdb.Symbolobject now has an additional attributeneeds_frame, and a new methodvalue. Theneeds_frameattribute indicates whether the symbol requires a frame to compute its value, and thevaluemethod computes the symbol's value. - The
gdb.Valueobject now has a new methodreferenced_value. This method can be used to dereference a pointer as well as C++ reference values. - The
gdb.Symtabobject now has two new methods,global_blockandstatic_block. These methods return the global and static blocks (asgdb.Blockobjects) of the underlying symbol table respectively. - A new method
gdb.find_pc_linereturns thegdb.Symtab_and_lineobject associated with a PC value. - The
gdb.Symtab_and_lineobject now has an additional attributelast. This attribute holds the end of the address range occupied by the code for the current source line.
Compatibility Changes
- A new command
info auto-loadhas been added and can be used to display the status of various automatically loaded files. Theinfo auto-load gdb-scriptscommand lists automatically loaded canned sequences of commands,info auto-load python-scriptsdisplays the status of automatically loaded Python scripts,info auto-load local-gdbinitdisplays whether a local.gdbinitfile in the current working directory is loaded, andinfo auto-load libthread-dbdisplays whether the inferior-specific thread debugging shared library is loaded. - New commands
set auto-loadandshow auto-loadhave been added and can be used to control automatic loading of files:- The
set auto-load gdb-scriptsandshow auto-load gdb-scriptscommands control automatic loading of GDB scripts. - The
set auto-load python-scriptsandshow auto-load python-scriptscommands control automatic loading of Python scripts. - The
set auto-load local-gdbinitandshow auto-load local-gdbinitcommands control automatic loading of.gdbinitfrom the current working directory. - The
set auto-load libthread-dbandshow auto-load libthread-dbcommands control automatic loading of inferior-specificlibthread_db. - The
set auto-load scripts-directoryandshow auto-load scripts-directorycommands control the list of directories from which to automatically load GDB and Python scripts. - The
set auto-load safe-pathandshow auto-load safe-pathcommands control the list of directories from which it is safe to automatically load all previously mentioned items. - The
set debug auto-loadandshow debug auto-loadcommands control displaying of debugging information for all previously mentioned items.
Theset auto-load offcommand can be used to disable automatic loading globally. You can also useshow auto-loadwith no subcommand to display current settings of all previously mentioned items. - The
maint set python auto-load on|offcommand has been replaced withset auto-load python-scripts on|off. - The
maintenance print section-scriptscommand has been renamed toinfo auto-load python-scripts [and is no longer classified as a maintenance-only command.pattern] - Support for the Guile extension language has been removed.
- The GNU Debugger has been adapted to follow GCC's rules on accessing volatile objects when reading or writing target state during expression evaluation.
In addition to the above changes, the features below have been added since the release of GDB included in Red Hat Enterprise Linux 5.9.
New Features
- For remote targets, debugging of shared libraries is now supported by default.
- New commands
set observerandshow observerhave been added. Theset observercommand acceptsonoroffas an argument and can be used to allow or disallow the GNU Debugger to affect the execution of the debugged program. Use theshow observercommand to determine whether observer mode is enabled. - A new convenience variable
$_threadhas been added. This variable stores the number of the current thread. - The
sourcecommand now accepts-sas a valid option. This option can be used to search for the script in the source search path regardless of the path in the file name. - Support for tracepoints, including fast and static tracepoints, has been added to
gdbserver. - The
--batchcommand line option has been adapted to disable pagination and queries. - Direct support for the reading and writing byte, word, and double-word x86 general purpose registers such as
$alhas been added. - The
commandscommand now accepts a range of breakpoints as an argument. - The
rbreakcommand now accepts a file name as part of its argument. This can be used to limit the functions selected by the supplied regular expression to those that are defined in the specified file. - Support for multi-program (sometimes referred to as multi-executable or multi-exec) debugging has been added. In particular, the GNU Debugger now supports the following commands:
- The
add-inferiorcommand can be used to add a new inferior. - The
clone-inferiorcommand can be used to create a copy of an inferior with the same executable loaded. - The
remove-inferiorcommand accepts an inferior ID as an argument and can be used to remove an inferior.
- Support for trace state variables has been added. In particular, the GNU Debugger now supports the following commands:
- The
tvariable $command can be used to define or modify a trace state variable.variable_name[=expression] - The
info tvariablescommand can be used to display a list of currently defined trace state variables and their values. - The
delete tvariable $command can be used to delete one or more trace state variables.variable_name...
- A new
ftracehas been added. This command accepts a function name, a line number, or an address as an argument, and can be used to define a fast tracepoint at that location. - Support for disconnected tracing, trace files, and circular trace buffer has been added.
- A new
tevalcommand has been added. This command accepts one or more expressions to evaluate at a tracepoint. - The GNU Debugger has been adapted to parse the
0bprefix of binary numbers exactly the same way as the GNU Compiler Collection. - The GNU Debugger now supports the following commands for process record and replay:
- New commands
set record memoryandshow record memoryhave been added. Theset record memorycommand acceptsonoroffas an argument and can be used to enable or disable stopping the inferior when a memory change of the next instruction cannot be recorded. Use theshow record memory-querycommand to determine whether this feature is enabled. - A new command
record savehas been added. This command accepts a file name as an argument and can be used to save the execution log to a file. - A new command
record restorehas been added. This command accepts a file name as an argument and can be used to restore the execution log from a file.
- A new command
evalhas been added. This command accepts a format string followed by one or more arguments, transforms it to a command, and then executes it. - A new command
save breakpointshas been added. This command accepts a file name as an argument and can be used to store all currently defined breakpoints to a file. To restore the saved breakpoints from this file, use thesourcecommand. - New commands
set may-write-registers,set may-write-memory,set may-insert-breakpoints,set may-insert-tracepoints,set may-insert-fast-tracepoints, andset may-interrupthave been added. All of these commands accept eitheronoroffas an argument, and can be used to set individual permissions for the target. - A new command
main info program-spaceshas been added. This command can be used to display information about currently loaded program spaces. - New commands
set remote interrupt-sequenceandshow remote interrupt-sequencehave been added. Theset remote interrupt-sequencecommand acceptsCtrl-C,BREAK, andBREAK-gas valid arguments, and can be used to specify which interrupt sequence to send to the remote target in order to interrupt its execution. Use theshow remote interrupt-sequenceto determine the current setting. - New commands
set remote interrupt-on-connectandshow remote interrupt-on-connecthave been added. Theset remote interrupt-on-connectaccepts eitheronoroffas an argument, and can be used to enable sending an interrupt sequence to the remote target when the GNU Debugger connects to it. Use theshow remote interrupt-on-connectcommand to determine whether this feature is enabled. - The
set remotebreakandshow remotebreakcommands have been deprecated and users are advised to useset remote interrupt-sequenceandshow remote interrupt-sequenceinstead. - The
disassemblecommand has been adapted to accept two arguments in the form ofstart,+length. - The
sourcecommand can now be used to read commands from Python scripts.
The following changes have been made to the C++ language support since the release of the GNU Debugger included in Red Hat Enterprise Linux 5.8:
- Argument-dependent lookup (ADL) now directs function search to the namespaces of its arguments regardless of whether the namespace has been imported.
- In addition to member operators, the GNU Debugger can now look up operators that are:
- defined in the global scope,
- defined in a namespace and imported via the
usingdirective, - implicitly imported from an anonymous namespace, or
- the argument-dependent lookup (ADL operators.
- Support for printing of static const class members that are initialized in the class definition has been enhanced.
- Support for importing of namespaces has been added.
- The C++ expression parser has been adapted to handle the cast operators
static_cast<>,dynamic_cast<>,const_cast<>, andreinterpret_cast<>.
The following changes have been made to the Python scripting support since the release of the GNU Debugger in Red Hat Enterprise Linux 5.8:
- The GNU Debugger is now installed with a new directory located at
/opt/rh/devtoolset-2/root/usr/share/gdb/python/. This directory serves as a standard location for Python scripts written for GDB. - The Python API has been adapted to provide access to symbols, symbol tables, program spaces, breakpoints, inferiors, threads, and frame's code blocks. Users are now also allowed to create custom GDB parameters from the API and manipulate them by using the
setandshowcommands. - New functions
gdb.target_charset,gdb.target_wide_charset,gdb.progspaces,gdb.current_progspace, andgdb.string_to_argvhave been added. - A new exception
gdb.GdbErrorhas been added. - The GNU Debugger now searches pretty-printers in the current program space.
- The GNU Debugger can now enable or disable pretty-printers individually.
- The GNU Debugger has been adapted to look for names of Python scripts to automatically load in a special section named
.debug_gdb_scripts.