B.6. Changes in GDB

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.

B.6.1. Changes Since Red Hat Developer Toolset 1.1

The following features have been added since the release of GDB included in Red Hat Developer Toolset 1.1:
  • Target record has been renamed to record-full. Consequently, you can now use the record full command to record or replay an execution log. In addition, the following commands have been renamed:
    • The set record insn-number-max and show record insn-number-max commands have been renamed to set record full insn-number-max and show record full insn-number-max.
    • The set record memory-query and show record memory-query commands have been renamed to set record full memory-query and show record full memory-query.
    • The set record stop-at-limit and show record stop-at-limit commands have been renamed to set record full stop-at-limit and show 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 the record btrace command. This record target does not support replaying the execution.

    Important

    The record-btrace target is only available on Intel Atom processors and requires the Linux kernel in version 2.6.32 or later.
  • New record instruction-history and record function-call-history commands have been added. These commands allow you to view information about an execution log without having to replay it. The record instruction-history command displays the execution history at instruction granularity and the record function-call-history displays the execution history at function granularity. The commands are only supported by the record btrace command.
  • A new command line option, -nh, has been added. This option allows you to disable automatic loading of the ~/.gdbinit file without disabling other initialization files.
  • The -epoch command line option has been removed. This option was used by GDB mode in Epoch, a deprecated clone of the Emacs text editor.
  • The ptype and whatis commands have been updated to accept an argument to control the type formatting.
  • The info proc command has been updated to work on some core files.
  • The cd command 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 tracepoints command has been enhanced to display installed on target or not installed on target for each non-pending location of a tracepoint.
  • A new command, fo, has been added. This commands serves as a shorter variant of the forward-search command.
  • A new command, catch signal, has been added. This command can be used to catch signals by their names and is similar to the handle command, 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 [command] and its shorter variant pi [command], 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.
  • A new command, py [command], has been added. This command serves as a shorter variant of the python [command] command.
  • New enable type-printer [name...] and disable type-printer [name...] commands have been added. These commands allow you to enable or disable type printers.
  • New set print type methods on|off and show print type methods commands have been added. These commands allow you to control whether method declarations are displayed by the ptype command. This functionality is enabled by default.
  • New set print type typedefs on|off and show print type typedefs commands have been added. These commands allow you to control whether typedef definitions are displayed by the ptype command. This functionality is enabled by default.
  • New set filename-display basename|relative|absolute and show filename-display commands have been added. These commands allow you to control the way in which file names are displayed: the basename option displays only the base name of a file name, relative displays a path relative to the compilation directory, and absolute displays an absolute path to the file. The default option is relative to preserve the previous behavior.
  • New set trace-buffer-size and show trace-buffer-size commands 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|off and show remote trace-buffer-size-packet commands have been added. These commands allow you to control the use of the remote protocol QTBuffer:size packet.
  • New set debug notification and show debug notification commands 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 the gdb.Architecture object 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 the tfind command.
  • New async records =tsv-created, =tsv-deleted, and =tsv-modified have been added. These async records report that a trace state variable has been created, deleted, or modified.
  • New async records =record-started and =record-stopped have 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-disassemble command now includes a new fullname field containing an absolute path to the source file name.
  • A new optional parameter, COUNT, has been added to the -data-write-memory-bytes command. This parameter can be used to allow pattern filling of memory areas.
  • New commands -catch-load and -catch-unload have been added. These commands can be used to intercept shared library load/unload events.
  • The response to breakpoint commands and breakpoint async records now includes a new installed field. This field reports the current state of each non-pending tracepoint location: when the tracepoint is installed, the value of this field is y, otherwise the value is n.
  • The output of the -trace-status command now includes a new trace-file field. This field is only present when examining a trace file and contains the name of this file.
  • The fullname filed is now always present along with the file field. 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.

B.6.2. Changes Since Red Hat Enterprise Linux 6.4

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 function and skip file have been added. These commands can be uses to skip certain functions and files when stepping.
  • The info threads command now displays the thread name as set by prctl or pthread_setname_np. In addition, new commands thread name and thread find have been added. The thread name command accepts a name as an argument and can be used to set the name of the current thread. The thread find command 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_index section. The command gdb-add-index can be used to add .gdb_index to 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 watch command has been adapted to accept -location as an optional argument.
  • Two new special values can now be used when specifying the current search path for libthread_db: $sdir represents the default system locations of shared libraries, and $pdir stands for the directory with the libthread that is used by the application.
  • A new command info macros has 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 -g3 command line option to have macro information available in it.
  • A new command alias has been added. This command can be used to create an alias of an existing command.
  • The info macro command now accepts -all and -- as valid options.
  • To display a function parameter's entry value (that is, the value at the time of function entry), the suffix @entry can be added to the parameter. GDB now displays @entry values in backtraces, if available.
  • New set print entry-values and show print entry-values commands have been added. The set print entry-values command accepts both, compact, default, if-needed, no, only, and preferred as valid arguments and can be used to enable printing of function arguments at function entry. The show print entry-values command can be used to determine whether this feature is enabled.
  • New set debug entry-values and show debug entry-values commands have been added. The set debug entry-values command can be used to enable printing of debugging information for determining frame argument values at function entry and virtual tail call frames.
  • !command has been added as an alias of shell command.
  • The watch command now accepts mask mask_value as an argument. This can be used to create masked watchpoints.
  • New set extended-prompt and show extended-prompt commands have been added. The set extended-prompt command enables support for a defined set of escape sequences that can be used to display various information. The show extended-prompt command can be used to determine whether the extended prompt is enabled.
  • New set basenames-may-differ and show basenames-may-differ commands have been added. The set basenames-may-differ command enables support for source files with multiple base names. The show basenames-may-differ command can be used to determine whether this support is enabled. The default option is off to 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 os command has been changed and can now display information on several objects managed by the operating system, in particular:
    • The info os procgroups command lists process groups.
    • The info os files command lists file descriptors.
    • The info os sockets command lists internet-domain sockets.
    • The info os shm command lists shared-memory regions.
    • The info os semaphores command lists semaphores.
    • The info os msg command lists message queues.
    • The info os modules command 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.h header file). You can set a breakpoint by using the new -probe, -pstap, or -probe-stap options, and inspect the probe arguments by using the new $_probe_arg family of convenience variables.
  • The symbol-reloading option has been deleted.
  • gdbserver now 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:1000 now sets a breakpoint in the build/gcc/expr.c file, but not in build/libcpp/expr.c.
  • The info proc and generate-core-file commands now work on remote targets connected to gdbserver.
  • The command info catch has been removed.
  • The Ada-specific catch exception and catch assert commands now accept conditions at the end of the command.
  • The info static-tracepoint-marker command now works on native targets with an in-process agent.
  • GDB can now set breakpoints on inline functions.
  • The .gdb_index section has been updated to include symbols for inline functions. By default, GDB now ignores older .gdb_index sections until their .gdb_index sections can be recreated. The new command set use-deprecated-index-sections on causes GDB to use any older .gdb_index sections it finds. If this option is set, the ability to set breakpoints on inline functions is lost in symbol files with older .gdb_index sections.
    The .gdb_index section 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 mode in the record target.
  • gdbserver now supports evaluation of breakpoint conditions. Note that you can instruct GDB to send the breakpoint conditions in bytecode form, but gdbserver only reports the breakpoint trigger to GDB when its condition evaluates to true.
  • The z0/z1 breakpoint 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 the set remote conditional-breakpoints-packet command to control the use of this extension.
  • A new RSP packet QProgramSignals can be used to specify the signals the remote stub can pass to the debugged program without GDB involvement.
  • A new command -info-os has been added as the MI equivalent of info os.
  • Output logs, such as set logging and related, now include MI output.
  • New set use-deprecated-index-sections on|off and show use-deprecated-index-sections on|off commands have been added. These commands allow you to control the use of deprecated .gdb_index sections.
  • New catch load and catch unload commands 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 count has been added. This command allows you to auto-disable a breakpoint after several hits.
  • A new command info vtbl has been added. This command allows you to show the virtual method tables for C++ and Java objects.
  • A new command explore has been added. It supports two subcommands explore value and explore 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 dprintf location,format,args... has been added. This command allows you to create a dynamic printf-type breakpoint, which performs a printf-like operation and then resumes program execution.
  • New set print symbol and show print symbol commands 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 the set print symbol off command.
  • New set breakpoint condition-evaluation and show breakpoint condition-evaluation commands have been added. These commands allow you to control whether breakpoint conditions are evaluated by GDB (the host option), or by gdbserver (the target option). The default option, auto, chooses the most efficient available mode.
  • New set dprintf-style gdb|call|agent and show dprintf-style commands have been added. These commands allow you to control the way in which a dynamic printf is performed: the gdb option requests a GDB printf command, call causes dprintf to call a function in the inferior, and agent requests that the target agent such as gdbserver does the printing.
  • New set dprintf-function expression, show dprintf-function, set dprintf-channel expression, and show dprintf-channel commands have been added. These commands allow you to set the function and optional first argument to the call when using the call style of dynamic printf.
  • New set disconnected-dprintf on|off and show disconnected-dprintf commands have been added. These commands allow you to control whether agent-style dynamic printfs 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_printer function in module gdb.printing now takes an optional replace argument.
  • The maint set python print-stack on|off command has been deprecated and will be deleted in GDB 7.5. The new command set python print-stack none|full|message has replaced it.
  • 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.
  • 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, static_block, is_static, and is_global.
  • The gdb.breakpoint function has been deprecated in favor of gdb.breakpoints.
  • A new class gdb.FinishBreakpoint is provided.
  • Type objects for struct and union types now allow access to the fields using standard Python dictionary (mapping) methods.
  • A new event gdb.new_objfile has been added.
  • A new function deep_items has been added to the gdb.types module.
  • The function gdb.Write now accepts an optional keyword stream.
  • Parameters can now be sub-classed in Python, which allows for implementation of the get_set_doc and get_show_doc functions.
  • 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, which allows for implementation of the stop function that is executed each time the inferior reaches that breakpoint.
  • A new function gdb.lookup_global_symbol has 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.types has been added.
  • A new module gdb.printing has been added.
  • New commands info pretty-printers, enable pretty-printer, and disable pretty-printer have been added.
  • A new gdb.parameter("directories") function call is now available.
  • A new function gdb.newest_frame has been added. This function can be used to return the newest frame in the selected thread.
  • The gdb.InferiorThread class now supports a new name attribute.
  • 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_USER command class.
  • The maint set python print-stack on|off command has been removed and replaced by set python print-stack.
  • A new class gdb.printing.FlagEnumerationPrinter has been added. This class can be used to apply flag enum-style pretty-printing to enums.
  • The gdb.lookup_symbol function now works correctly when there is no current frame.
  • The gdb.Symbol object now has an additional attribute line. This attribute holds the line number in the source at which the symbol was defined.
  • The gdb.Symbol object now has an additional attribute needs_frame, and a new method value. The needs_frame attribute indicates whether the symbol requires a frame to compute its value, and the value method computes the symbol's value.
  • The gdb.Value object now has a new method referenced_value. This method can be used to dereference a pointer as well as C++ reference values.
  • The gdb.Symtab object now has two new methods, global_block and static_block. These methods return the global and static blocks (as gdb.Block objects) of the underlying symbol table respectively.
  • A new method gdb.find_pc_line returns the gdb.Symtab_and_line object associated with a PC value.
  • The gdb.Symtab_and_line object now has an additional attribute last. 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-load has been added and can be used to display the status of various automatically loaded files. The info auto-load gdb-scripts command lists automatically loaded canned sequences of commands, info auto-load python-scripts displays the status of automatically loaded Python scripts, info auto-load local-gdbinit displays whether a local .gdbinit file in the current working directory is loaded, and info auto-load libthread-db displays whether the inferior-specific thread debugging shared library is loaded.
  • New commands set auto-load and show auto-load have been added and can be used to control automatic loading of files:
    • The set auto-load gdb-scripts and show auto-load gdb-scripts commands control automatic loading of GDB scripts.
    • The set auto-load python-scripts and show auto-load python-scripts commands control automatic loading of Python scripts.
    • The set auto-load local-gdbinit and show auto-load local-gdbinit commands control automatic loading of .gdbinit from the current working directory.
    • The set auto-load libthread-db and show auto-load libthread-db commands control automatic loading of inferior-specific libthread_db.
    • The set auto-load scripts-directory and show auto-load scripts-directory commands control the list of directories from which to automatically load GDB and Python scripts.
    • The set auto-load safe-path and show auto-load safe-path commands control the list of directories from which it is safe to automatically load all previously mentioned items.
    • The set debug auto-load and show debug auto-load commands control displaying of debugging information for all previously mentioned items.
    The set auto-load off command can be used to disable automatic loading globally. You can also use show auto-load with no subcommand to display current settings of all previously mentioned items.
  • The maint set python auto-load on|off command has been replaced with set auto-load python-scripts on|off.
  • The maintenance print section-scripts command has been renamed to info auto-load python-scripts [pattern] and is no longer classified as a maintenance-only command.
  • 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.

B.6.3. Changes Since Red Hat Enterprise Linux 5.9

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 observer and show observer have been added. The set observer command accepts on or off as an argument and can be used to allow or disallow the GNU Debugger to affect the execution of the debugged program. Use the show observer command to determine whether observer mode is enabled.
  • A new convenience variable $_thread has been added. This variable stores the number of the current thread.
  • The source command now accepts -s as 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 --batch command 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 $al has been added.
  • The commands command now accepts a range of breakpoints as an argument.
  • The rbreak command 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-inferior command can be used to add a new inferior.
    • The clone-inferior command can be used to create a copy of an inferior with the same executable loaded.
    • The remove-inferior command 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 $variable_name [= expression] command can be used to define or modify a trace state variable.
    • The info tvariables command can be used to display a list of currently defined trace state variables and their values.
    • The delete tvariable $variable_name... command can be used to delete one or more trace state variables.
  • A new ftrace has 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 teval command has been added. This command accepts one or more expressions to evaluate at a tracepoint.
  • The GNU Debugger has been adapted to parse the 0b prefix 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 memory and show record memory have been added. The set record memory command accepts on or off as 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 the show record memory-query command to determine whether this feature is enabled.
    • A new command record save has 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 restore has 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 eval has 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 breakpoints has 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 the source command.
  • New commands set may-write-registers, set may-write-memory, set may-insert-breakpoints, set may-insert-tracepoints, set may-insert-fast-tracepoints, and set may-interrupt have been added. All of these commands accept either on or off as an argument, and can be used to set individual permissions for the target.
  • A new command main info program-spaces has been added. This command can be used to display information about currently loaded program spaces.
  • New commands set remote interrupt-sequence and show remote interrupt-sequence have been added. The set remote interrupt-sequence command accepts Ctrl-C, BREAK, and BREAK-g as valid arguments, and can be used to specify which interrupt sequence to send to the remote target in order to interrupt its execution. Use the show remote interrupt-sequence to determine the current setting.
  • New commands set remote interrupt-on-connect and show remote interrupt-on-connect have been added. The set remote interrupt-on-connect accepts either on or off as an argument, and can be used to enable sending an interrupt sequence to the remote target when the GNU Debugger connects to it. Use the show remote interrupt-on-connect command to determine whether this feature is enabled.
  • The set remotebreak and show remotebreak commands have been deprecated and users are advised to use set remote interrupt-sequence and show remote interrupt-sequence instead.
  • The disassemble command has been adapted to accept two arguments in the form of start,+length.
  • The source command 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 using directive,
    • 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<>, and reinterpret_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 set and show commands.
  • New functions gdb.target_charset, gdb.target_wide_charset, gdb.progspaces, gdb.current_progspace, and gdb.string_to_argv have been added.
  • A new exception gdb.GdbError has 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.