From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id A6DC93857371 for ; Mon, 16 May 2022 13:25:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A6DC93857371 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-153-0-z0i3N6M1yCUMRFNmMmBA-1; Mon, 16 May 2022 09:25:54 -0400 X-MC-Unique: 0-z0i3N6M1yCUMRFNmMmBA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C9B0E185A794; Mon, 16 May 2022 13:25:53 +0000 (UTC) Received: from oldenburg.str.redhat.com (unknown [10.39.193.27]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4BADA40CF8E2; Mon, 16 May 2022 13:25:53 +0000 (UTC) From: Florian Weimer To: Andreas Krebbel via Gcc Subject: Re: CFI for saved argument registers References: <7d266787-9a64-07e6-bf7b-1bd01119517c@linux.ibm.com> Date: Mon, 16 May 2022 15:25:52 +0200 In-Reply-To: <7d266787-9a64-07e6-bf7b-1bd01119517c@linux.ibm.com> (Andreas Krebbel via Gcc's message of "Mon, 16 May 2022 08:29:32 +0200") Message-ID: <87lev1sj6n.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 May 2022 13:25:56 -0000 * Andreas Krebbel via Gcc: > For that purpose I save the argument registers to the stack as we > would do for a variable argument lists. But this time I also provide > the CFI to allow the unwinder to locate the save slots. Since I never > actually intend to restore the content there is no matching > cfi_restore for the cfi_offset and dwarf2cfi complains about the > traces being inconsistent because of that. I couldn't find a way to > prevent this. > > The only way I see right now is adding a new reg note to invalidate > the save information in the reg_save array in dwarf2cfi. > > Would this be acceptable? Is there perhaps an easier way to achieve that? This is very interesting. I think we should do this in glibc for abort and __assert_fail for as many registers as possible, hopefully preserving more information for debuggers. Thanks, Florian