From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 6E3123858C50 for ; Fri, 10 Feb 2023 01:59:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6E3123858C50 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=simark.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=simark.ca Received: from [10.0.0.11] (unknown [217.28.27.60]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 2454A1E110; Thu, 9 Feb 2023 20:59:28 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=simark.ca; s=mail; t=1675994368; bh=NwWGkT4NvyW+ZnBK8+ZF8LYyPtBTOSrcbERKMJbMco4=; h=Date:Subject:To:References:From:In-Reply-To:From; b=mrF467LTk/TF4mtfN4MMoqXDBRJOsLowqtodGRVST/xBs2w+9Ha5XbLsIKT6dIeBh tj217PwQvahhWpFdCd/Rk+vJg6i7o1dEPTR9QNyvEtF4oVKCyo5jbRfHDvT+9p74fx j1d0ZQigx5fUMvLBW14IOiIN4thuZp8HH39JESec= Message-ID: <43b354c6-a2bf-21a7-d1da-c51f0862f8e6@simark.ca> Date: Thu, 9 Feb 2023 20:59:27 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: How frame command with address works Content-Language: en-US To: Roger Phillips , "gdb@sourceware.org" References: <807c2500-1ed2-b886-b1ea-093a0971dfba@simark.ca> From: Simon Marchi In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2/9/23 05:43, Roger Phillips wrote: > Thanks for your answer. I tried frame view on an intact callstack that works with bt for test purposes: > > (gdb) f 2 > #2 0x0000007f9eaa2c68 someFunc (this=0x3a015370, timeout=4294967295, selector=0x0) > at > (gdb) p $sp > $20 = (void *) 0x7f9c256630 > (gdb) p $pc > $21 = (void (*)(void)) 0x7f9eaa2c68 > (gdb) frame view 0x7f9c256630 0x7f9eaa2c68 > #0 0x0000007f9eaa2c68 in somefunc (this=0x3a01540c, timeout=1, > selector=0x7f9eaa2be0 ) > at > > It can be seen that the this pointer is different from the frame view result. It always is 0x3a01540c regardless on how I set the stack pointer or program counter. > It seems to me that while it sets the pc correctly it pulls the args always from frame 0. This is probably because GDB reads registers from the current target, when viewing a user-created frame. Yeah, it's odd, and part of why I find that feature a bit strange. Simon