GDB 18.1 released!

Release 18.1 of GDB, the GNU Debugger, is now available.  GDB is
a source-level debugger for Ada, C, C++, Fortran, Go, Rust, and many
other languages.  GDB can target (i.e., debug programs running on)
more than a dozen different processor architectures, and GDB itself
can run on most popular GNU/Linux, Unix and Microsoft Windows variants.
GDB is free (libre) software.

You can download GDB from the GNU HTTPS server in the directory:

        https://ftp.gnu.org/gnu/gdb/?C=M;O=D

The vital stats:

  Size   sha256sum                                                         Name
  22MiB  cd9fc3fe2b47743840e42c1592d3d87f8302eb18639c0b8b4ba0898002e2348f  
gdb-18.1.tar.xz
  37MiB  fb83623deb238cab91ad17f8a906e2da26d0b4620fb1da43c20a274252e51082  
gdb-18.1.tar.gz

There is a web page for GDB at:

        https://www.gnu.org/software/gdb/

That page includes information about GDB mailing lists (an announcement
mailing list, developers discussion lists, etc.), details on how to
access GDB's source repository, locations for development snapshots,
preformatted documentation, and links to related information around
the net.  We will put errata notes and host-specific tips for this release
on-line as any problems come up.  All mailing lists archives are also
browsable via the web.

GDB 18.1 includes the following changes and enhancements:

 * Major improvements to the Windows native target:

   ** Non-stop mode is now supported (requires Windows 10 or later).

   ** Scheduler-locking ("set scheduler-locking on") now works.

   ** Native Thread Local Storage (TLS) variables are now supported.

   ** On the Windows Terminal console, GDB now supports true-color
      24-bit colors, and, when the output codepage is 65001, emoji
      styling and UTF-8 text in general (the host charset is then set
      to UTF-8 automatically).

   ** File names are now consistently shown with forward slashes,
      instead of a mix of slash styles, e.g. "C:/proj/src/main.c"
      instead of "C:/proj/src\main.c".  This affects all interpreters
      (CLI, TUI, GDB/MI, DAP) and everywhere GDB shows a file or
      directory name.

 * GDB now adds all type symbols to the .gdb_index section, fixing
   cases where GDB could fail to find a type when relying on the
   index.  Existing indexes should be regenerated.

 * Improved handling of inferior arguments:

   ** "set args", "run", "start" and "starti" now accept arguments
      containing a newline character, within a quoted argument.

   ** New --no-escape-args command line option for GDB, an alternative
      to --args that does not escape special shell characters within
      the arguments.  gdbserver accepts a --no-escape-args flag with
      the same effect on the inferior arguments.

   ** When connecting to a remote server that supports the new
      qExecAndArgs packet, GDB copies the argument string from the
      server into its own 'args' setting, so that the arguments are
      visible with "show args" and reused by subsequent runs.

 * When connected to an extended-remote target, GDB can now set the
   'remote exec-file' automatically, using the current executable, if
   the remote was not started with an executable and the user did not
   set one explicitly.

 * The add-inferior, clone-inferior and MI -add-inferior commands now
   warn and create the new inferior without a connection when the
   current connection cannot be shared (e.g. core files, or the
   Windows native target).  Sharing these previously tended to crash
   GDB.

 * "info locals" now shows a "shadowed" annotation and location
   information for variables that shadow, or are shadowed by, others.

 * Support for the Floating Point Mode Register (FPMR) on AArch64.

 * GDB now supports libipt v2.2 events originating from Event Tracing
   ("set record btrace pt event-tracing on") on a FRED-enabled system,
   and from Trigger Tracing.

 * GDB now supports arbitrary (non-standard) baud rates for serial
   connections on systems whose libc accepts them through
   cfsetispeed/cfsetospeed, such as glibc 2.42 and later, and GNU Hurd.

 * "info inferiors" now shows the core file loaded in an inferior, if
   any.

 * New "essential" help command class, listing what we believe is
   close to a minimal set of commands for a new GDB user.

 * New commands:

   ** "set/show/unset local-environment", analogs of the "environment"
      commands, affecting the environment of subprocesses started by
      GDB itself, such as those started by "shell" and "pipe".

   ** "save history", "save skip" and "save user", to save the command
      history, the current skips, and the user-defined commands to a
      file.

   ** "info proc environ", to print the initial environment variables
      of a process (Linux only).

   ** "set/show progress-bars enabled", to disable the progress bars
      GDB shows for long operations, such as while debuginfod
      downloads content.

   ** "delete skip", "enable skip" and "disable skip", new aliases for
      "skip delete", "skip enable" and "skip disable".

   ** "set/show debug gnu-ifunc" and "set/show debug ctf".

 * New targets:

   ** GNU/Linux/MicroBlaze (gdbserver)  microblazeel-*linux*

   ** AArch64 MinGW                     aarch64-*-mingw*

 * Python API enhancements:

   ** New gdb.Corefile class, representing a loaded core file, with
      the new Inferior.corefile attribute, plus the new
      gdb.CorefileMappedFile and gdb.CorefileMappedFileRegion types
      describing the files mapped when the core file was created.

   ** New gdb.Style class, gdb.StyleParameterSet class, and
      gdb.INTENSITY_* constants, for representing styles and creating
      custom "set/show style NAME ..." parameters.  gdb.write() takes
      a new optional 'style' argument.

   ** New gdb.events.selected_context event registry, emitting a
      SelectedContextEvent whenever the user changes the selected
      inferior, thread or frame.

   ** New gdb.events.corefile_changed event registry, emitting a
      CorefileChangedEvent whenever the core file of an inferior
      changes.

   ** New gdb.Symtab.source_lines method, returning the source lines
      of the file associated with a symtab.

   ** The Architecture.disassemble method accepts a new 'styling'
      argument, to get ANSI escape sequences in the assembly strings.

   ** New gdb.Block.ranges attribute, listing the ranges of a block.

 * Debugger Adapter Protocol changes:

   ** Unhandled Ada exceptions can now be caught using the "unhandled"
      exception filter.

   ** The launch and attach requests accept a new adaSourceCharset
      parameter, and the attach request accepts a new coreFile
      parameter.

   ** Constants are now returned in scopes.

 * Remote protocol changes:

   ** New qExecAndArgs packet, returning the executable file name and
      argument string the server was started with.

   ** New single-inf-arg qSupported feature, letting GDB send the
      inferior arguments as a single string in the vRun packet.

 * Incompatible changes:

   ** Support for the stabs and mdebug debug information formats, and
      for the dbx binary file format, has been removed.

   ** Support for the Common Trace Format (CTF) has been removed:
      trace information is now saved exclusively in GDB's own "tfile"
      format, the "target ctf" command is gone, and "tsave" and MI
      "-trace-save" no longer accept the "-ctf" flag.  The
      --with-babeltrace configure option has been removed as well.

   ** Support for .gdb_index sections older than version 7 has been removed.

   ** Support for DWP (DWARF Package File) version 1 has been removed.

   ** The format of execution records saved by "record save" has
      changed; previous formats are no longer supported.

   ** Guile 2.2 is now the minimum supported Guile version, and the
      deprecated memory port buffer size procedures have been
      removed; use 'setvbuf' instead.

   ** The "maint check psymtabs", "maint info psymtabs" and "maint
      print psymbols" commands have been removed, as GDB no longer
      uses partial symbol tables internally.

   ** "maintenance info program-spaces" no longer displays the core
      file name; use "info inferiors" instead.

   ** GDB no longer supports AIX 7.1; the minimum supported version is
      now AIX 7.2 TL5, and only DWARF debug information is supported
      on AIX going forward.

   ** The s390 32-bit target (s390-*) is deprecated and planned for
      removal in a future release, along with the elf32-s390 target
      format.  configure now errors out for this target, which can be
      overridden with --enable-obsolete.  The s390 64-bit target
      (s390x-*) remains supported.

For a complete list and more details on each item, please see the gdb/NEWS
file, available at:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-18.1-release

-- 
Andrew Burgess


Reply via email to