From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id LuriJrMlMGokfwgAWB0awg (envelope-from ) for ; Mon, 15 Jun 2026 12:17:55 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=LFbZGTcG; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 82E5D1E098; Mon, 15 Jun 2026 12:17:55 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_SBL_CSS autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 3E3C31E091 for ; Mon, 15 Jun 2026 12:17:54 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6138D4B9DB79 for ; Mon, 15 Jun 2026 16:17:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6138D4B9DB79 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=LFbZGTcG Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 8552548FDEC8 for ; Mon, 15 Jun 2026 16:15:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8552548FDEC8 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8552548FDEC8 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1781540157; cv=none; b=IqHj60LoxSwMKx9lnx851ZW5f5fC1vuPQRa21l6inaiVAJ/qnQpYnexFuFJClmeAThG1Hiko0C4GuesznCLIRkiXRr/Ari9uh2003XiZLX89+wb1NctXjEVC+nh9jniE/MZeYcqjQgAr0+jB5YeDY0fyIGe/XLTHMP7ZOe3g0f4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1781540157; c=relaxed/simple; bh=ZX1Uj7KXLrZTSCvuaSpMEA/MyFx9uppbpKFiMlbvFQ4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=C5a0S3shjOW6+GfVKLujtQix/MG4JX1TCC0LAMfRqTBA7IG1M5S5r8rstTEowL2aZlGRGgqP/Vh1ZqT8CRxqJbDEd8f6bGNAMdiYNSwIh6wVjhMFOrzDZygmY3xgES1Ha/Vc34rPA7ECT9TED0emrwmLLHsXm/7osP335AuE/SM= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=LFbZGTcG DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8552548FDEC8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781540156; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CiKjLNez90Re9XvLuKOFRP7HU32QrkKbAEfdcF1Ztxk=; b=LFbZGTcGGFmgs4VXTixGAo2qz09eVc0hlLJnNvCotmj/zC74UtpajUo9P/7bcGo9Fba72S VEPZ5i8ziLf0mmLD0i8S6kvD8x+Tle2FFW8kAWy9r2rpZxNMed9sgxH7SFSYtXiIvzOewH Y9CjoKJTWJZlBToWv34SlPtmDoUT7jo= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-664-QHbllOkBOGeJF-BXn_kg3g-1; Mon, 15 Jun 2026 12:15:52 -0400 X-MC-Unique: QHbllOkBOGeJF-BXn_kg3g-1 X-Mimecast-MFC-AGG-ID: QHbllOkBOGeJF-BXn_kg3g_1781540151 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C9C651955F1D; Mon, 15 Jun 2026 16:15:50 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.96.134.37]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7FBE71955BCE; Mon, 15 Jun 2026 16:15:48 +0000 (UTC) From: Guinevere Larsen To: gdb-patches@sourceware.org Cc: Guinevere Larsen , Christina Schimpe , Thiago Jung Bauermann , Eli Zaretskii Subject: [PATCH v5 7/8] gdb/record: Define new version of the record-save section Date: Mon, 15 Jun 2026 13:14:59 -0300 Message-ID: <20260615161500.34181-8-guinevere@redhat.com> In-Reply-To: <20260615161500.34181-1-guinevere@redhat.com> References: <20260615161500.34181-1-guinevere@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: JqvcmPwgSvxBh1PlpgGyTL0RhAXUN3RHGTDs1pQ7iX0_1781540151 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org 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: Christina Schimpe Reviewed-by: Thiago Jung Bauermann Reviewed-By: Eli Zaretskii --- gdb/NEWS | 4 ++++ gdb/record-full.c | 35 +++++++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/gdb/NEWS b/gdb/NEWS index d5214a98a57..343828a85dd 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 ec6d40e97cf..ba8b8688415 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. @@ -2233,6 +2234,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. */ @@ -2428,9 +2450,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