From: "Schimpe, Christina" <christina.schimpe@intel.com>
To: Guinevere Larsen <guinevere@redhat.com>,
"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Cc: Thiago Jung Bauermann <thiago.bauermann@linaro.org>,
Eli Zaretskii <eliz@gnu.org>
Subject: RE: [PATCH v4 7/8] gdb/record: Define new version of the record-save section
Date: Wed, 10 Jun 2026 14:49:03 +0000 [thread overview]
Message-ID: <SN7PR11MB76383AF091FDEFB158F72B82F91A2@SN7PR11MB7638.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20260602143342.12245-8-guinevere@redhat.com>
> -----Original Message-----
> From: Guinevere Larsen <guinevere@redhat.com>
> Sent: Dienstag, 2. Juni 2026 16:34
> To: gdb-patches@sourceware.org
> Cc: Guinevere Larsen <guinevere@redhat.com>; Thiago Jung Bauermann
> <thiago.bauermann@linaro.org>; Eli Zaretskii <eliz@gnu.org>
> Subject: [PATCH v4 7/8] gdb/record: Define new version of the record-save
> section
>
> With the changes to the internal representation of the history, we can no
> longer support the previous record save format. This commit makes it official,
> documenting the new format and changing the magic number.
>
> Reviewed-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
> Reviewed-By: Eli Zaretskii <eliz@gnu.org>
> ---
> gdb/NEWS | 4 ++++
> gdb/record-full.c | 35 +++++++++++++++++++++++++++++++----
> 2 files changed, 35 insertions(+), 4 deletions(-)
>
> diff --git a/gdb/NEWS b/gdb/NEWS
> index 7c8cf9af4c2..4dd3d84c19d 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -51,6 +51,10 @@
>
> * Support for the binary file format dbx has been removed.
>
> +* The format for a saved execution record, created when the command
> + 'record save' is used, has been updated, and previous formats are
> + no longer supported.
> +
> * When connected to an extended-remote target GDB can now
> automatically set the 'remote exec-file' in some cases. GDB will
> auto set the remote exec-file only if the remote wasn't started with diff --git
> a/gdb/record-full.c b/gdb/record-full.c index 0dd4207e0c6..4e8326e1298
> 100644
> --- a/gdb/record-full.c
> +++ b/gdb/record-full.c
> @@ -79,7 +79,8 @@
> ((record_full_next_insn != record_full_list.size ()) \
> || ::execution_direction == EXEC_REVERSE)
>
> -#define RECORD_FULL_FILE_MAGIC netorder32(0x20091016)
> +#define RECORD_FULL_FILE_MAGIC_OLD netorder32(0x20091016)
> +#define RECORD_FULL_FILE_MAGIC netorder32(0x20260415)
>
> /* These are the core structs of the process record functionality.
>
> @@ -2214,6 +2215,27 @@ record_full_core_target::has_execution (inferior
> *inf)
> 8 bytes: memory address (network byte order).
> n bytes: memory value (n == memory length).
>
> + Version 3 (all numbers are in network order).
> + 4 bytes: Magic number (0x20260415).
> + NOTE: be sure to change whenever this file format changes!
> +
> + Records:
> + record_full_instruction:
> + 1 byte: signal.
> + 4 bytes: number of reg and mem entries for this instruction.
> + 4 bytes: instruction sequence number.
> + 4 bytes: PC register ID.
> + N bytes: PC address of instruction (N == size of PC).
> + Effects:
> + record_full_reg:
> + 1 byte: record_type (record_full_reg, see enum record_full_type).
> + 4 bytes: Register ID.
> + n bytes: register value (n == actual register size).
> + record_full_mem:
> + 1 byte: record_type (record_full_mem, see enum record_full_type).
> + 4 bytes: memory length.
> + 8 bytes: memory address.
> + n bytes: memory value (n = memory length).
> */
>
> /* bfdcore_read -- read bytes from a core file section. */ @@ -2409,9
> +2431,14 @@ record_full_restore (struct bfd &cbfd)
> /* Check the magic code. */
> bfdcore_read (&cbfd, osec, &magic, sizeof (magic), &bfd_offset);
> if (magic != RECORD_FULL_FILE_MAGIC)
> - error (_("Version mismatch or file format error in core file %ps."),
> - styled_string (file_name_style.style (),
> - bfd_get_filename (&cbfd)));
> + {
> + if (magic == RECORD_FULL_FILE_MAGIC_OLD)
> + error (_("This old recording format is no longer supported."));
> + else
> + error (_("Version mismatch or file format error in core file %ps."),
> + styled_string (file_name_style.style (),
> + bfd_get_filename (&cbfd)));
> + }
> if (record_debug)
> gdb_printf (gdb_stdlog,
> " Reading 4-byte magic cookie "
> --
> 2.54.0
>
LGTM.
Reviewed-By: Christina Schimpe <christina.schimpe@intel.com>
Christina
Intel Deutschland GmbH
Registered Address: Dornacher Strasse 1, 85622 Feldkirchen, Germany
Tel: +49 89 991 430, www.intel.de
Managing Directors: Harry Demas, Jeffrey Schneiderman, Yin Chong Sorrell
Chairperson of the Supervisory Board: Nicole Lau
Registered Seat: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
next prev parent reply other threads:[~2026-06-10 14:49 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-02 14:33 [PATCH v4 0/8] refactor the internals of record-full Guinevere Larsen
2026-06-02 14:33 ` [PATCH v4 1/8] gdb/record: Refactor record history Guinevere Larsen
2026-06-10 14:39 ` Schimpe, Christina
2026-06-12 18:07 ` Guinevere Larsen
2026-06-02 14:33 ` [PATCH v4 2/8] gdb/record: factor out reading and writing the execution log to corefile Guinevere Larsen
2026-06-10 14:40 ` Schimpe, Christina
2026-06-02 14:33 ` [PATCH v4 3/8] gdb/record: remove record_full_insn_num Guinevere Larsen
2026-06-02 14:33 ` [PATCH v4 4/8] gdb/record: c++ify internal structures of record-full.c Guinevere Larsen
2026-06-10 14:46 ` Schimpe, Christina
2026-06-10 19:07 ` Guinevere Larsen
2026-06-11 7:21 ` Schimpe, Christina
2026-06-11 17:16 ` Guinevere Larsen
2026-06-15 7:49 ` Schimpe, Christina
2026-06-25 20:41 ` Guinevere Larsen
2026-07-06 8:35 ` Schimpe, Christina
2026-06-02 14:33 ` [PATCH v4 5/8] gdb/record: make record_full_history more c++-like Guinevere Larsen
2026-06-02 14:33 ` [PATCH v4 6/8] gdb/record: extract the PC to record_full_instruction Guinevere Larsen
2026-06-02 14:33 ` [PATCH v4 7/8] gdb/record: Define new version of the record-save section Guinevere Larsen
2026-06-10 14:49 ` Schimpe, Christina [this message]
2026-06-02 14:33 ` [PATCH v4 8/8] gdb/record: rename record_full_list to record_full_log Guinevere Larsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=SN7PR11MB76383AF091FDEFB158F72B82F91A2@SN7PR11MB7638.namprd11.prod.outlook.com \
--to=christina.schimpe@intel.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=guinevere@redhat.com \
--cc=thiago.bauermann@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox