• Icon: Story Story
    • Resolution: Unresolved
    • Icon: Normal Normal
    • rhel-10.0.beta
    • rhel-10.0.beta
    • gdb
    • None
    • gdb-14.2-1.el10
    • Rebase
    • 1
    • rhel-sst-pt-perf-debug
    • ssg_platform_tools
    • 15
    • 17
    • 2
    • QE ack
    • False
    • Hide

      None

      Show
      None
    • Yes
    • Red Hat Enterprise Linux
    • Perf Debug Sprint 6
    • Enhancement
    • Hide
      .RHEL 10 provides GDB version 14.2

      GDB has been updated to version 14.2. The following paragraphs list notable changes since GDB 12.1.

      General:

      * The `info breakpoints` command now displays enabled breakpoint locations of disabled breakpoints as in the `y-` state.
       * Added support for debug sections compressed with Zstandard (`ELFCOMPRESS_ZSTD`) for ELF.
      * The Text User Interface (TUI) no longer styles the source and assembly code highlighted by the current position indicator by default. To re-enable styling, use the new command `set style tui-current-position`.
      * A new `$_inferior_thread_count` convenience variable contains the number of live threads in the current inferior.
      * For breakpoints with multiple code locations, GDB now prints the code location using the `<breakpoint_number>.<location_number>` syntax.
      * When a breakpoint is hit, GDB now sets the `$_hit_bpnum` and `$_hit_locno` convenience variables to the hit breakpoint number and code location number. You can now disable the last hit breakpoint by using the `disable $_hit_bpnum` command, or disable only the specific breakpoint code location by using the `disable $_hit_bpnum.$_hit_locno` command.
      * Added support for the link:https://no-color.org/[`NO_COLOR`] environment variable.
      * Added support for integer types larger than 64 bits.
      * You can use new commands for multi-target feature configuration to configure remote target feature sets (see the `set remote <name>-packet` and `show remote <name>-packet` in Commands).
      * Added support for the Debugger Adapter Protocol.
      * You can now use the new `inferior` keyword to make breakpoints inferior-specific (see `break` or `watch` in Commands).
      * You can now use the new `$_shell()` convenience function to execute a shell command
       during expression evaluation.

      Changes to existing commands:

      * `break`, `watch`
      ** Using the `thread` or `task` keywords multiple times with the `break` and `watch` commands now results in an error instead of using the thread or task ID of the last instance of the keyword.
      ** Using more than one of the `thread`, `task`, and `inferior` keywords in the same `break` or `watch` command is now invalid.
      * `printf`, `dprintf`
      ** The `printf` and `dprintf` commands now accept the `%V` output format, which formats an expression the same way as the `print` command. You can also modify the output format by using additional print options in brackets `[...]` following the command, for example: `printf "%V[-array-indexes on]", <array>`.
      * `list`
      ** You can now use the `.` argument to print the location around the point of execution in the current frame, or around the beginning of the `main()` function if the inferior has not started yet.
      ** Attempting to list more source lines in a file than are available now issues a warning, referring the user to the `.` argument.
      * `document user-defined`
      ** It is now possible to document user-defined aliases.

      New commands:

      * `set print nibbles [on|off]` (default: `off`), `show print nibbles` - controls whether the `print/t` command displays binary values in groups of four bits (nibbles).
      * `set debug infcall [on|off]` (default: `off`), `show debug infcall` - prints additional debug messages about inferior function calls.
      * `set debug solib [on|off]` (default: `off`), `show debug solib` - prints additional debug messages about shared library handling.
      * `set print characters <LIMIT>`, `show print characters`, `print -characters <LIMIT>` - controls how many characters of a string are printed.
      * `set debug breakpoint [on|off]` (default: `off`), `show debug breakpoint` - prints additional debug messages about breakpoint insertion and removal.
      * `maintenance print record-instruction [ N ]` - prints the recorded information for a given instruction.
      * `maintenance info frame-unwinders` - lists the frame unwinders currently in effect in the order of priority (highest first).
      * `maintenance wait-for-index-cache` - waits until all pending writes to the index cache are completed.
      * `info main` - prints information on the main symbol to identify an entry point into the program.
      * `set tui mouse-events [on|off]` (default: `on`), `show tui mouse-events` - controls whether mouse click events
       are sent to the TUI and Python extensions (when `on`), or the
       terminal (when `off`).

      Machine Interface (MI) changes:

      * MI version 1 has been removed.
      * MI now reports `no-history` when reverse execution history is exhausted.
      * The `thread` and `task` breakpoint fields are no longer reported twice in the output of the `-break-insert` command.
      * Thread-specific breakpoints can no longer be created on non-existent thread IDs.
      * The `--simple-values` argument to the `-stack-list-arguments`, `-stack-list-locals`, `-stack-list-variables`, and `-var-list-children` commands now considers reference types as simple if the target is simple.
      * The `-break-insert` command now accepts a new `-g thread-group-id` option to create
       inferior-specific breakpoints.
      * Breakpoint-created notifications and the output of the `-break-insert` command can now
       include an optional `inferior` field for the main breakpoint and each breakpoint location.
       * The async record stating the `breakpoint-hit` stopped reason now contains an optional field `locno` giving the code location number in case of a multi-location breakpoint.

      Changes in the GDB Python API:

      * Events
      ** A new `gdb.ThreadExitedEvent` event.
      ** A new `gdb.executable_changed` event registry, which emits the `ExecutableChangedEvent` objects that have `progspace` and `reload` attributes.
      ** New `gdb.events.new_progspace` and `gdb.events.free_progspace` event registries, which emit the `NewProgpspaceEvent` and `FreeProgspaceEvent` event types. Both of these event types have a single attribute `progspace` to specify the `gdb.Progspace` program space that is being added to or removed from GDB.
      * The `gdb.unwinder.Unwinder` class
      ** The `name` attribute is now read-only.
      ** The name argument of the `pass:[__init__]` function must be of the `str` type, otherwise a `TypeError` is raised.
      ** The `enabled` attribute now accepts only the `bool` type.
      * The `gdb.PendingFrame` class
      ** New methods: `name`, `is_valid`, `pc`, `language`, `find_sal`, `block`, and `function`, which mirror similar methods of the `gdb.Frame` class.
      ** The `frame-id` argument of the `create_unwind_info` function can now be either
       an integer or a `gdb.Value` object for the `pc`, `sp`, and `special` attributes.
      * A new `gdb.unwinder.FrameId` class, which can be passed to the `gdb.PendingFrame.create_unwind_info` function.
      * The `gdb.disassembler.DisassemblerResult` class can no longer be sub-classed.
      * The `gdb.disassembler` module now includes styling support.
      * A new `gdb.execute_mi(COMMAND, [ARG]...)` function, which invokes a GDB/MI
       command and returns result as a Python dictionary.
      * A new `gdb.block_signals()` function, which returns a context manager that
       blocks any signals that GDB needs to handle.
      * A new `gdb.Thread` subclass of the `threading.Thread` class, which calls the `gdb.block_signals` function in its `start` method.
      * The `gdb.parse_and_eval` function has a new `global_context` parameter to restrict
       parsing on global symbols.
      * The `gdb.Inferior` class
      ** A new `arguments` attribute, which holds the command-line arguments to the inferior, if known.
      ** A new `main_name` attribute, which holds the name of the inferior's `main` function, if known.
      ** New `clear_env`, `set_env`, and `unset_env` methods, which can modify the inferior's environment before it is started.
      * The `gdb.Value` class
      ** A new `assign` method to assign a value of an object.
      ** A new `to_array` method to convert an array-like value to an array.
      * The `gdb.Progspace` class
      ** A new `objfile_for_address` method, which returns the `gdb.Objfile` object that covers a given address (if exists).
      ** A new `symbol_file` attribute holding the `gdb.Objfile` object that corresponds to the `Progspace.filename` variable (or `None` if the filename is `None`).
      ** A new `executable_filename` attribute, which holds the string with a filename that is set
       by the `exec-file` or `file` commands, or `None` if no executable file is set.
      * The `gdb.Breakpoint` class
      ** A new `inferior` attribute, which contains the inferior ID (an integer) for breakpoints that are inferior-specific, or `None` if no such breakpoints are set.
      * The `gdb.Type` class
      ** New `is_array_like` and `is_string_like` methods, which reflect whether a type might be array- or string-like regardless of the type's actual type code.
      * A new `gdb.ValuePrinter` class, which can be used as the base class for the result of applying a pretty-printer.
      * A newly implemented `pass:[gdb.LazyString.__str__]` method.
      * The `gdb.Frame` class
      ** A new `static_link` method, which returns the outer frame of a nested function frame.
      ** A new `gdb.Frame.language` method that returns the name of the frame's language.
      * The `gdb.Command` class
      ** GDB now reformats the doc string for the `gdb.Command` class and the `gdb.Parameter` sub-classes to remove unnecessary leading whitespace from each line before using the string as the help output.
      * The `gdb.Objfile` class
      ** A new `is_file` attribute.
      * A new `gdb.format_address(ADDRESS, PROGSPACE, ARCHITECTURE)` function, which uses the same format as when printing address, symbol, and offset information from the disassembler.
      * A new `gdb.current_language` function, which returns the name of the current language.
      * A new Python API for wrapping GDB's disassembler, including `gdb.disassembler.register_disassembler(DISASSEMBLER, ARCH)`, `gdb.disassembler.Disassembler`, `gdb.disassembler.DisassembleInfo`, `gdb.disassembler.builtin_disassemble(INFO, MEMORY_SOURCE)`, and `gdb.disassembler.DisassemblerResult`.
      * A new `gdb.print_options` function, which returns a dictionary of the prevailing print options, in the form accepted by the `gdb.Value.format_string` function.
      * The `gdb.Value.format_string` function
      ** `gdb.Value.format_string` now uses the format provided by the `print` command if it is called during a `print` or other similar operation.
      ** `gdb.Value.format_string` now accepts the `summary` keyword.
      * A new `gdb.BreakpointLocation` Python type.
      * The `gdb.register_window_type` method now restricts the set of acceptable window names.
       
      Architecture-specific changes:

      * AMD and Intel 64-bit architectures
      ** Added support for disassembler styling using the `libopcodes` library, which is now used by default. You can modify how the disassembler output is styled by using the `set style disassembler *` commands. To use the Python Pygments styling instead, use the new `maintenance set libopcodes-styling off` command.

      * The 64-bit ARM architecture
      ** Added support for dumping memory tag data for the Memory Tagging Extension (MTE).
      ** Added support for the Scalable Matrix Extension 1 and 2 (SME/SME2). Some features are still considered experimental or alpha, for example, manual function calls with ZA state or tracking Scalable Vector Graphics (SVG) changes based on DWARF.
      ** Added support for Thread Local Storage (TLS) variables.
      ** Added support for hardware watchpoints.

      * The 64-bit IBM Z architecture
      ** Record and replay support for the new `arch14` instructions on IBM Z targets, except for the specialized-function-assist instruction `NNPA`.

      * IBM Power Systems, Little Endian
      ** Added base enablement support for POWER11.

      For changes since the RHEL 9 system version of GDB 10.2, see the release notes for the link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html-single/9.1_release_notes/index#BZ-2077494[GCC Toolset 12 version of GDB 11.2] and the link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html-single/9.3_release_notes/index#BZ-2172096[GCC Toolset 13 version of GDB 12.1].
      Show
      .RHEL 10 provides GDB version 14.2 GDB has been updated to version 14.2. The following paragraphs list notable changes since GDB 12.1. General: * The `info breakpoints` command now displays enabled breakpoint locations of disabled breakpoints as in the `y-` state.  * Added support for debug sections compressed with Zstandard (`ELFCOMPRESS_ZSTD`) for ELF. * The Text User Interface (TUI) no longer styles the source and assembly code highlighted by the current position indicator by default. To re-enable styling, use the new command `set style tui-current-position`. * A new `$_inferior_thread_count` convenience variable contains the number of live threads in the current inferior. * For breakpoints with multiple code locations, GDB now prints the code location using the `<breakpoint_number>.<location_number>` syntax. * When a breakpoint is hit, GDB now sets the `$_hit_bpnum` and `$_hit_locno` convenience variables to the hit breakpoint number and code location number. You can now disable the last hit breakpoint by using the `disable $_hit_bpnum` command, or disable only the specific breakpoint code location by using the `disable $_hit_bpnum.$_hit_locno` command. * Added support for the link: https://no-color.org/ [`NO_COLOR`] environment variable. * Added support for integer types larger than 64 bits. * You can use new commands for multi-target feature configuration to configure remote target feature sets (see the `set remote <name>-packet` and `show remote <name>-packet` in Commands). * Added support for the Debugger Adapter Protocol. * You can now use the new `inferior` keyword to make breakpoints inferior-specific (see `break` or `watch` in Commands). * You can now use the new `$_shell()` convenience function to execute a shell command  during expression evaluation. Changes to existing commands: * `break`, `watch` ** Using the `thread` or `task` keywords multiple times with the `break` and `watch` commands now results in an error instead of using the thread or task ID of the last instance of the keyword. ** Using more than one of the `thread`, `task`, and `inferior` keywords in the same `break` or `watch` command is now invalid. * `printf`, `dprintf` ** The `printf` and `dprintf` commands now accept the `%V` output format, which formats an expression the same way as the `print` command. You can also modify the output format by using additional print options in brackets `[...]` following the command, for example: `printf "%V[-array-indexes on]", <array>`. * `list` ** You can now use the `.` argument to print the location around the point of execution in the current frame, or around the beginning of the `main()` function if the inferior has not started yet. ** Attempting to list more source lines in a file than are available now issues a warning, referring the user to the `.` argument. * `document user-defined` ** It is now possible to document user-defined aliases. New commands: * `set print nibbles [on|off]` (default: `off`), `show print nibbles` - controls whether the `print/t` command displays binary values in groups of four bits (nibbles). * `set debug infcall [on|off]` (default: `off`), `show debug infcall` - prints additional debug messages about inferior function calls. * `set debug solib [on|off]` (default: `off`), `show debug solib` - prints additional debug messages about shared library handling. * `set print characters <LIMIT>`, `show print characters`, `print -characters <LIMIT>` - controls how many characters of a string are printed. * `set debug breakpoint [on|off]` (default: `off`), `show debug breakpoint` - prints additional debug messages about breakpoint insertion and removal. * `maintenance print record-instruction [ N ]` - prints the recorded information for a given instruction. * `maintenance info frame-unwinders` - lists the frame unwinders currently in effect in the order of priority (highest first). * `maintenance wait-for-index-cache` - waits until all pending writes to the index cache are completed. * `info main` - prints information on the main symbol to identify an entry point into the program. * `set tui mouse-events [on|off]` (default: `on`), `show tui mouse-events` - controls whether mouse click events  are sent to the TUI and Python extensions (when `on`), or the  terminal (when `off`). Machine Interface (MI) changes: * MI version 1 has been removed. * MI now reports `no-history` when reverse execution history is exhausted. * The `thread` and `task` breakpoint fields are no longer reported twice in the output of the `-break-insert` command. * Thread-specific breakpoints can no longer be created on non-existent thread IDs. * The `--simple-values` argument to the `-stack-list-arguments`, `-stack-list-locals`, `-stack-list-variables`, and `-var-list-children` commands now considers reference types as simple if the target is simple. * The `-break-insert` command now accepts a new `-g thread-group-id` option to create  inferior-specific breakpoints. * Breakpoint-created notifications and the output of the `-break-insert` command can now  include an optional `inferior` field for the main breakpoint and each breakpoint location.  * The async record stating the `breakpoint-hit` stopped reason now contains an optional field `locno` giving the code location number in case of a multi-location breakpoint. Changes in the GDB Python API: * Events ** A new `gdb.ThreadExitedEvent` event. ** A new `gdb.executable_changed` event registry, which emits the `ExecutableChangedEvent` objects that have `progspace` and `reload` attributes. ** New `gdb.events.new_progspace` and `gdb.events.free_progspace` event registries, which emit the `NewProgpspaceEvent` and `FreeProgspaceEvent` event types. Both of these event types have a single attribute `progspace` to specify the `gdb.Progspace` program space that is being added to or removed from GDB. * The `gdb.unwinder.Unwinder` class ** The `name` attribute is now read-only. ** The name argument of the `pass:[__init__]` function must be of the `str` type, otherwise a `TypeError` is raised. ** The `enabled` attribute now accepts only the `bool` type. * The `gdb.PendingFrame` class ** New methods: `name`, `is_valid`, `pc`, `language`, `find_sal`, `block`, and `function`, which mirror similar methods of the `gdb.Frame` class. ** The `frame-id` argument of the `create_unwind_info` function can now be either  an integer or a `gdb.Value` object for the `pc`, `sp`, and `special` attributes. * A new `gdb.unwinder.FrameId` class, which can be passed to the `gdb.PendingFrame.create_unwind_info` function. * The `gdb.disassembler.DisassemblerResult` class can no longer be sub-classed. * The `gdb.disassembler` module now includes styling support. * A new `gdb.execute_mi(COMMAND, [ARG]...)` function, which invokes a GDB/MI  command and returns result as a Python dictionary. * A new `gdb.block_signals()` function, which returns a context manager that  blocks any signals that GDB needs to handle. * A new `gdb.Thread` subclass of the `threading.Thread` class, which calls the `gdb.block_signals` function in its `start` method. * The `gdb.parse_and_eval` function has a new `global_context` parameter to restrict  parsing on global symbols. * The `gdb.Inferior` class ** A new `arguments` attribute, which holds the command-line arguments to the inferior, if known. ** A new `main_name` attribute, which holds the name of the inferior's `main` function, if known. ** New `clear_env`, `set_env`, and `unset_env` methods, which can modify the inferior's environment before it is started. * The `gdb.Value` class ** A new `assign` method to assign a value of an object. ** A new `to_array` method to convert an array-like value to an array. * The `gdb.Progspace` class ** A new `objfile_for_address` method, which returns the `gdb.Objfile` object that covers a given address (if exists). ** A new `symbol_file` attribute holding the `gdb.Objfile` object that corresponds to the `Progspace.filename` variable (or `None` if the filename is `None`). ** A new `executable_filename` attribute, which holds the string with a filename that is set  by the `exec-file` or `file` commands, or `None` if no executable file is set. * The `gdb.Breakpoint` class ** A new `inferior` attribute, which contains the inferior ID (an integer) for breakpoints that are inferior-specific, or `None` if no such breakpoints are set. * The `gdb.Type` class ** New `is_array_like` and `is_string_like` methods, which reflect whether a type might be array- or string-like regardless of the type's actual type code. * A new `gdb.ValuePrinter` class, which can be used as the base class for the result of applying a pretty-printer. * A newly implemented `pass:[gdb.LazyString.__str__]` method. * The `gdb.Frame` class ** A new `static_link` method, which returns the outer frame of a nested function frame. ** A new `gdb.Frame.language` method that returns the name of the frame's language. * The `gdb.Command` class ** GDB now reformats the doc string for the `gdb.Command` class and the `gdb.Parameter` sub-classes to remove unnecessary leading whitespace from each line before using the string as the help output. * The `gdb.Objfile` class ** A new `is_file` attribute. * A new `gdb.format_address(ADDRESS, PROGSPACE, ARCHITECTURE)` function, which uses the same format as when printing address, symbol, and offset information from the disassembler. * A new `gdb.current_language` function, which returns the name of the current language. * A new Python API for wrapping GDB's disassembler, including `gdb.disassembler.register_disassembler(DISASSEMBLER, ARCH)`, `gdb.disassembler.Disassembler`, `gdb.disassembler.DisassembleInfo`, `gdb.disassembler.builtin_disassemble(INFO, MEMORY_SOURCE)`, and `gdb.disassembler.DisassemblerResult`. * A new `gdb.print_options` function, which returns a dictionary of the prevailing print options, in the form accepted by the `gdb.Value.format_string` function. * The `gdb.Value.format_string` function ** `gdb.Value.format_string` now uses the format provided by the `print` command if it is called during a `print` or other similar operation. ** `gdb.Value.format_string` now accepts the `summary` keyword. * A new `gdb.BreakpointLocation` Python type. * The `gdb.register_window_type` method now restricts the set of acceptable window names.   Architecture-specific changes: * AMD and Intel 64-bit architectures ** Added support for disassembler styling using the `libopcodes` library, which is now used by default. You can modify how the disassembler output is styled by using the `set style disassembler *` commands. To use the Python Pygments styling instead, use the new `maintenance set libopcodes-styling off` command. * The 64-bit ARM architecture ** Added support for dumping memory tag data for the Memory Tagging Extension (MTE). ** Added support for the Scalable Matrix Extension 1 and 2 (SME/SME2). Some features are still considered experimental or alpha, for example, manual function calls with ZA state or tracking Scalable Vector Graphics (SVG) changes based on DWARF. ** Added support for Thread Local Storage (TLS) variables. ** Added support for hardware watchpoints. * The 64-bit IBM Z architecture ** Record and replay support for the new `arch14` instructions on IBM Z targets, except for the specialized-function-assist instruction `NNPA`. * IBM Power Systems, Little Endian ** Added base enablement support for POWER11. For changes since the RHEL 9 system version of GDB 10.2, see the release notes for the link: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html-single/9.1_release_notes/index#BZ-2077494 [GCC Toolset 12 version of GDB 11.2] and the link: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html-single/9.3_release_notes/index#BZ-2172096 [GCC Toolset 13 version of GDB 12.1].
    • Done
    • None

      Rebase to gcc-toolset-14-gdb-14.2 when it is available.

              keiths@redhat.com Keith Seitz
              keiths@redhat.com Keith Seitz
              Keith Seitz Keith Seitz
              Michal Kolar Michal Kolar
              Lenka Špačková Lenka Špačková
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: