|
|
Subscribe / Log in / New account

GDB 13.1 released

Version 13.1 of the GNU GDB debugger has been released. Changes include support for the LoongArch and CSKY architectures, a number of Python API improvements, support for zstd-compressed debug sections, and more.


From:  Joel Brobecker <brobecker-AT-adacore.com>
To:  gdb-announce-AT-sourceware.org, info-gnu-AT-gnu.org
Subject:  GDB 13.1 released!
Date:  Sun, 19 Feb 2023 19:16:31 +0400
Message-ID:  <20230219151631.993AE81E81@takamaka.gnat.com>
Archive-link:  Article


            GDB 13.1 released!

Release 13.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 FTP server in the directory:

        ftp://ftp.gnu.org/gnu/gdb

The vital stats:

  Size   sha256sum                                                         Name
  23MiB  115ad5c18d69a6be2ab15882d365dda2a2211c14f480b3502c6eba576e2e95a0  gdb-13.1.tar.xz
  39MiB  4cc3d7143d6d54d289d227b1e7289dbc0fa4cbd46131ab87136e1ea831cf46d4  gdb-13.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 13.1 includes the following changes and enhancements:

* Support for the following new targets has been added in both
  GDB and GDBserver:

  ** GNU/Linux/LoongArch (gdbserver) loongarch*-*-linux*

  ** GNU/Linux/CSKY (gdbserver) csky*-*linux*

* The Windows native target now supports target async.

* FreeBSD:

  ** Arm and AArch64: Support for Thread Local Storage (TLS) variables

  ** Hardware watchpoint support on AArch64 FreeBSD

* Floating-point support has now been added on LoongArch GNU/Linux.

* New commands:

 ** set print nibbles [on|off]
    show print nibbles

    This controls whether the 'print/t' command will display binary values
    in groups of four bits, known as "nibbles".  The default is 'off'.

 ** Various styling-related commands. See the gdb/NEWS file for more
    details (see link at the bottom).

 ** Various maintenance commands.  These are normally aimed at GDB
    experts or developers. See the gdb/NEWS file for more details
    (see link at the bottom).

* Python API improvements:

 ** New Python API for instruction disassembly.
    The new attribute 'locations' of gdb.Breakpoint returns a list of
    gdb.BreakpointLocation objects specifying the locations where the
    breakpoint is inserted into the debuggee.

 ** New Python type gdb.BreakpointLocation.

 ** New function gdb.format_address(ADDRESS, PROGSPACE, ARCHITECTURE)
    that formats ADDRESS as 'address <symbol+offset>'

 ** New function gdb.current_language that returns the name of the
    current language.  Unlike gdb.parameter('language'), this will
    never return 'auto'.

 ** New function gdb.print_options that returns a dictionary of the
    prevailing print options, in the form accepted by gdb.Value.format_string.

 ** New method gdb.Frame.language that returns the name of the
    frame's language.

 ** gdb.Value.format_string now uses the format provided by 'print',
    if it is called during a 'print' or other similar operation.

 ** gdb.Value.format_string now accepts the 'summary' keyword.  This
    can be used to request a shorter representation of a value, the
    way that 'set print frame-arguments scalars' does.

 ** The gdb.register_window_type method now restricts the set of
    acceptable window names.  The first character of a window's name
    must start with a character in the set [a-zA-Z], every subsequent
    character of a window's name must be in the set [-_.a-zA-Z0-9].

* GDB/MI changes:

  ** MI version 1 is deprecated, and will be removed in GDB 14.

  ** The async record stating the stopped reason 'breakpoint-hit' now
     contains an optional field locno.

* Miscellaneous improvements:

  ** gdb now supports zstd compressed debug sections (ELFCOMPRESS_ZSTD) for ELF.

  ** New convenience variable $_inferior_thread_count contains the number
     of live threads in the current inferior.

  ** New convenience variables $_hit_bpnum and $_hit_locno, set to
     the breakpoint number and the breakpoint location number of
     the breakpoint last hit.

  ** The "info breakpoints" now displays enabled breakpoint locations
     of disabled breakpoints as in the "y-" state.

  ** The format of 'disassemble /r' and 'record instruction-history /r'
     has changed to match the layout of GNU objdump when disassembling.

     A new format "/b" has been introduce to provide the old behavior
     of "/r".

  ** The TUI no longer styles the source and assembly code highlighted
     by the current position indicator by default. You can however
     re-enable styling using the new "set style tui-current-position"
     command.

  ** It is now possible to use the "document" command to document
     user-defined commands.

  ** Support for memory tag data for AArch64 MTE.

* Support Removal notices:

  ** DBX mode has been removed.

  ** Support for building against Python version 2 has been removed.
     It is now only possible to build GDB against Python 3.

  ** Support for the following commands has been removed:

     set debug aix-solib on|off
     show debug aix-solib
     set debug solib-frv on|off
     show debug solib-frv

     Use the "set/show debug solib" commands instead.

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;...

-- 
Joel Brobecker


to post comments

GDB 13.1 released

Posted Feb 20, 2023 15:25 UTC (Mon) by ianmcc (subscriber, #88379) [Link] (7 responses)

Wow, FTP still exists? I notice that Firefox seems to have removed support for it.

GDB 13.1 released

Posted Feb 20, 2023 19:15 UTC (Mon) by madscientist (subscriber, #16861) [Link] (2 responses)

You can also use https://ftp.gnu.org/gnu/gdb/

I switched to this for my software announcements a long time ago: GDB should do the same. Even better is https://ftp.gnu.org/gnu/gdb/?C=M;O=D so results are sorted by descending modification date (newest first).

GDB 13.1 released

Posted Feb 21, 2023 20:27 UTC (Tue) by IanKelling (subscriber, #89418) [Link] (1 responses)

Thank you madscientist. I work at FSF and help maintain ftp.gnu.org, and it has been many years since we asked all GNU packages to replace ftp: with https: in announcements and current documentation.

GDB 13.1 released

Posted Feb 21, 2023 21:39 UTC (Tue) by madscientist (subscriber, #16861) [Link]

Yes, thanks for your work Ian, very appreciated.

I mentioned this to Joel on the gdb mailing list so hopefully the next GDB release will provide https in addition to, if not replacing, ftp. Cheers!

FTP

Posted Feb 21, 2023 0:21 UTC (Tue) by skissane (subscriber, #38675) [Link] (3 responses)

FTP is dying for most use cases, yes. It isn't fundamentally flawed – plain FTP is insecure, but FTPS isn't, yet few people implemented it; using two separate ports (one for control, the other for data) is a problem, but there are solutions (e.g. with FTPS you can share the same port for both, if you use TLS session resumption). The whole "corrupting files by transmitting them in ASCII mode" business was just FTP clients with stupid defaults and nobody would change those stupid defaults, but nowadays the vast majority of FTP clients default to binary mode.

One area in which FTP is still the best option however – surviving mainframe and minicomputer systems (which are greatly diminished from their former glory, but still with us, and I'm sure at least some of them will still be here, even further diminished, in 20 years time). Most of those systems have file systems which support "record-oriented files", in which the filesystem is aware of and enforces the division of the file into records, either fixed length (with the record length defined at file creation time) or variable length (each record starts with a header giving its length, and sometimes also some flags). Examples of such systems include OpenVMS, non-Linux IBM mainframe operating systems (z/OS, z/VM, z/TPF and VSEn), IBM i (formerly AS/400), and most surviving non-IBM mainframe lines (Unisys, Fujitsu, Atos/Bull). If you want to transfer a record-oriented file from OpenVMS to z/OS, keeping the record boundaries intact – the FTP protocol can do that out of the box, HTTP(S) or SFTP don't support that.

Another area in which FTP seems to still be hanging on is scientific computing, where GridFTP is used to transfer massive data sets. GridFTP is a bunch of extensions defined to the classic FTP protocol. GridFTP is still actively used, although it has seemed to have fallen in popularity ever since its main backer (Globus) transitioned from being an open source project to a paid SaaS offering with proprietary clients. IBM Aspera performs much better (and isn't based on FTP at all), but costs a lot more $$$$.

FTP

Posted Feb 21, 2023 12:40 UTC (Tue) by mbunkus (subscriber, #87248) [Link] (1 responses)

FTP _is_ fundamentally broken:

• Directory listings are the output of "ls". Have you ever tried having files owned by users or groups with spaces in them? Say… "Domain Users". Clients fall flat on their face trying to parse the output as they have to split fields by whitespace, which obviously fails with such user & group names.
• FTPS is even more broken (assuming you mean encrypting the control connection, too, not just the data connection). With FTPS you can only use the passive mode, and your server must not be behind any kind of NAT. Why? Because no firewall device can parse the encrypted control connection & can therefore not determine the dynamically-allocated port numbers the server & client use.

Sure, you can use it in certain circumstances, but it's not a general-purpose solution.

FTP

Posted Feb 22, 2023 7:59 UTC (Wed) by epa (subscriber, #39769) [Link]

To be fair, directory listings in http are even more broken. Typically the server will send an HTML page listing the files, which you have to parse somehow.

FTP

Posted Feb 21, 2023 17:55 UTC (Tue) by eduperez (guest, #11232) [Link]

The last mainframe I worked on (up to 6 months ago) used XCOM for all data transfers; in 25 years, I never saw FTP being used around it.

GDB 13.1 released

Posted Feb 21, 2023 6:49 UTC (Tue) by oldtomas (guest, #72579) [Link]

Thank you for GDB!

And now some snark: I'll take it over FTP, tapes, floppies or whatever: I joyfully appreciate the gift regardless of the wrapping.


Copyright © 2023, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds