Opened 3 months ago

Closed 3 months ago

#20054 closed enhancement (fixed)

gdb-15.1

Reported by: Xi Ruoyao Owned by: Bruce Dubbs
Priority: normal Milestone: 12.2
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New major version.

Change History (3)

comment:1 by Bruce Dubbs, 3 months ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:2 by Bruce Dubbs, 3 months ago

Changes in GDB 15

  • The MPX commands "show/set mpx bound" have been deprecated, as Intel listed MPX as removed in 2019.
  • Building GDB and GDBserver now requires a C++17 compiler. For example, GCC 9 or later.
  • GDB index now contains information about the main function. This speeds up startup when it is being used for some large binaries.
  • On hosts where threading is available, DWARF reading is now done in the background, resulting in faster startup. This can be controlled using "maint set dwarf synchronous".
  • Changed commands
    disassemble
      Attempting to use both the 'r' and 'b' flags with the disassemble
      command will now give an error.  Previously the 'b' flag would
      always override the 'r' flag.
    
    gcore
    generate-core-file
      GDB now generates sparse core files, on systems that support it.
    
    maintenance info line-table
      Add an EPILOGUE-BEGIN column to the output of the command.  It indicates
      if the line is considered the start of the epilgoue, and thus a point at
      which the frame can be considered destroyed.
    
    set unwindonsignal on|off
    show unwindonsignal
      These commands are now aliases for the new set/show unwind-on-signal.
    
    target record-full
      This command now gives an error if any unexpected arguments are
      found after the command.
    
    list .
      When using the command "list ." in a location that has no debug information
      or no file loaded, GDB now says that there is no debug information to print
      lines.  This makes it more obvious that there is no information, as opposed
      to implying there is no inferior loaded.
    
  • New commands
    info missing-debug-handler
      List all the registered missing debug handlers.
    
    enable missing-debug-handler LOCUS HANDLER
    disable missing-debug-handler LOCUS HANDLER
      Enable or disable a missing debug handler with a name matching the
      regular expression HANDLER, in LOCUS.
    
      LOCUS can be 'global' to operate on global missing debug handler,
      'progspace' to operate on handlers within the current program space,
      or can be a regular expression which is matched against the filename
      of the primary executable in each program space.
    
    maintenance info linux-lwps
      List all LWPs under control of the linux-nat target.
    
    set remote thread-options-packet
    show remote thread-options-packet
      Set/show the use of the thread options packet.
    
    set direct-call-timeout SECONDS
    show direct-call-timeout
    set indirect-call-timeout SECONDS
    show indirect-call-timeout
      These new settings can be used to limit how long GDB will wait for
      an inferior function call to complete.  The direct timeout is used
      for inferior function calls from e.g. 'call' and 'print' commands,
      while the indirect timeout is used for inferior function calls from
      within a conditional breakpoint expression.
    
      The default for the direct timeout is unlimited, while the default
      for the indirect timeout is 30 seconds.
    
      These timeouts will only have an effect for targets that are
      operating in async mode.  For non-async targets the timeouts are
      ignored, GDB will wait indefinitely for an inferior function to
      complete, unless interrupted by the user using Ctrl-C.
    set unwind-on-timeout on|off
    show unwind-on-timeout
      These commands control whether GDB should unwind the stack when a
      timeout occurs during an inferior function call.  The default is
      off, in which case the inferior will remain in the frame where the
      timeout occurred.  When on, GDB will unwind the stack removing the
      dummy frame that was added for the inferior call, and restoring the
      inferior state to how it was before the inferior call started.
    
    set unwind-on-signal on|off
    show unwind-on-signal
      These new commands replaces the existing set/show unwindonsignal.  The
      old command is maintained as an alias.
    
  • New features in the GDB remote stub, GDBserver
  • The --remote-debug and --event-loop-debug command line options have been removed.
  • The --debug command line option now takes an optional comma separated list of components to emit debug for. The currently supported components are: all, threads, event-loop, and remote. If no components are given then threads is assumed.
  • The 'monitor set remote-debug' and 'monitor set event-loop-debug' command have been removed.
  • The 'monitor set debug 0|1' command has been extended to take a component name, e.g.: 'monitor set debug COMPONENT off|on'. Possible component names are: all, threads, event-loop, and remote.
  • Python API
  • New function gdb.notify_mi(NAME, DATA), that emits custom GDB/MI async notification.
  • New read/write attribute gdb.Value.bytes that contains a bytes object holding the contents of this value.
  • New module gdb.missing_debug that facilitates dealing with objfiles that are missing any debug information.
  • New function gdb.missing_debug.register_handler that can register an instance of a sub-class of gdb.missing_debug.MissingDebugInfo as a handler for objfiles that are missing debug information.
  • New class gdb.missing_debug.MissingDebugInfo which can be sub-classed to create handlers for objfiles with missing debug information.
  • Stop events now have a "details" attribute that holds a dictionary that carries the same information as an MI "*stopped" event.
  • New function gdb.interrupt(), that interrupts GDB as if the user typed control-c.
  • New gdb.InferiorThread.ptid_string attribute. This read-only attribute contains the string that appears in the 'Target Id' column of the 'info threads' command output.
  • It is no longer possible to create new gdb.Progspace object using 'gdb.Progspace()', this will result in a TypeError. Progspace objects can still be obtained through calling other API functions, for example 'gdb.current_progspace()'.
  • User defined attributes can be added to a gdb.Inferior object, these will be stored in the object's new Inferior.dict attribute.
  • User defined attributes can be added to a gdb.InferiorThread object, these will be stored in the object's new InferiorThread.dict attribute.
  • New constants gdb.SYMBOL_TYPE_DOMAIN, gdb.SYMBOL_FUNCTION_DOMAIN, and gdb.SEARCH_*_DOMAIN corresponding to all the existing symbol domains. Symbol lookup can now search in multiple domains at once, and can also narrowly search for just a type or function.
  • Debugger Adapter Protocol changes
  • GDB now emits the "process" event.
  • GDB now supports the "cancel" request.
  • The "attach" request now supports specifying the program.
  • New command "set debug dap-log-level" controls DAP logging.
  • The "set debug dap-log-file" command is now documented. This command was available in GDB 14 but not documented.
  • Guile API
  • New constants SYMBOL_TYPE_DOMAIN, SYMBOL_FUNCTION_DOMAIN, and SEARCH_*_DOMAIN corresponding to all the existing symbol domains. Symbol lookup can now search in multiple domains at once, and can also narrowly search for just a type or function.
  • New remote packets
    New stop reason: clone
      Indicates that a clone system call was executed.
    
    QThreadOptions
      Enable/disable optional event reporting, on a per-thread basis.
      Currently supported options are GDB_THREAD_OPTION_CLONE, to enable
      clone event reporting, and GDB_THREAD_OPTION_EXIT to enable thread
      exit event reporting.
    
    QThreadOptions in qSupported
      The qSupported packet allows GDB to inform the stub it supports the
      QThreadOptions packet, and the qSupported response can contain the
      set of thread options the remote stub supports.
    
    qIsAddressTagged
      This new packet allows GDB to query the stub about a given address to check
      if it is tagged or not.  Many memory tagging-related GDB commands need to
      perform this check before they read/write the allocation tag related to an
      address.  Currently, however, this is done through a 'vFile' request to read
      the file /proc/<PID>/smaps and check if the address is in a region reported
      as memory tagged.  Since not all targets have a notion of what the smaps
      file is about, this new packet provides a more generic way to perform such
      a check.
    

comment:3 by Bruce Dubbs, 3 months ago

Resolution: fixed
Status: assignedclosed

Fixed at commit 9aeac590f0.

Note: See TracTickets for help on using tickets.