Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
To: Guinevere Larsen <guinevere@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 6/6] gdb/record: Define new version of the record-save section
Date: Sat, 18 Apr 2026 02:51:17 -0300	[thread overview]
Message-ID: <87v7do95pm.fsf@linaro.org> (raw)
In-Reply-To: <20260415185836.2732968-7-guinevere@redhat.com> (Guinevere Larsen's message of "Wed, 15 Apr 2026 15:58:36 -0300")

Guinevere Larsen <guinevere@redhat.com> writes:

> 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.
> ---
>  gdb/NEWS          |  3 +++
>  gdb/record-full.c | 35 +++++++++++++++++++++++++++++++----
>  2 files changed, 34 insertions(+), 4 deletions(-)

Assuming that the order switch between number of effect entries and
signal I mention below is fixed (or I misunderstood it):

Reviewed-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org>

> diff --git a/gdb/record-full.c b/gdb/record-full.c
> index 297b5b76ae7..f7cfe5ca1e9 100644
> --- a/gdb/record-full.c
> +++ b/gdb/record-full.c
> @@ -76,7 +76,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)

Out of curiosity: how was the magic number chosen? It doesn't seem to
based on ASCII. Is it worth adding a comment to explain it?

>  /* These are the core structs of the process record functionality.
>  
> @@ -2161,6 +2162,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:
> +	4 bytes: number of reg and mem entries for this instruction.
> +	1 byte: signal.

Looking at the code in record_full_restore, signal comes before the
number of effect entries.

> +	4 bytes: instruction count.

Maybe it's just me or I'm a bit tired, but "instruction sequence number"
sounds clearer to me than "instruction count".

> +	4 bytes: PC register ID.

Considering that we know that it will be the PC in this "register slot",
it's slightly wasteful to include the register ID here. But I suppose
it's not a problem in practice.

> +	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.  */

-- 
Thiago

      parent reply	other threads:[~2026-04-18  5:51 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-15 18:58 [PATCH 0/6] Refactor the internals of record-full Guinevere Larsen
2026-04-15 18:58 ` [PATCH 1/6] gdb/record: Refactor record history Guinevere Larsen
2026-04-18  0:15   ` Thiago Jung Bauermann
2026-04-15 18:58 ` [PATCH 2/6] gdb/record: remove record_full_insn_num Guinevere Larsen
2026-04-18  2:31   ` Thiago Jung Bauermann
2026-04-15 18:58 ` [PATCH 3/6] gdb/record: c++ify internal structures of record-full.c Guinevere Larsen
2026-04-18  3:45   ` Thiago Jung Bauermann
2026-04-15 18:58 ` [PATCH 4/6] gdb/record: make record_full_history more c++-like Guinevere Larsen
2026-04-18  4:03   ` Thiago Jung Bauermann
2026-04-15 18:58 ` [PATCH 5/6] gdb/record: extract the PC to record_full_instruction Guinevere Larsen
2026-04-18  5:16   ` Thiago Jung Bauermann
2026-04-15 18:58 ` [PATCH 6/6] gdb/record: Define new version of the record-save section Guinevere Larsen
2026-04-16  6:00   ` Eli Zaretskii
2026-04-16 12:41     ` Guinevere Larsen
2026-04-16 13:45       ` Eli Zaretskii
2026-04-16 14:03         ` Guinevere Larsen
2026-04-16 15:01           ` Eli Zaretskii
2026-04-18  5:51   ` Thiago Jung Bauermann [this message]

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=87v7do95pm.fsf@linaro.org \
    --to=thiago.bauermann@linaro.org \
    --cc=gdb-patches@sourceware.org \
    --cc=guinevere@redhat.com \
    /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