From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 6msGAltK12kihQ4AWB0awg (envelope-from ) for ; Thu, 09 Apr 2026 02:42:35 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=ry4lx0Az; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=fCkRKPMU; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=ry4lx0Az; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=fCkRKPMU; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id E40C51E0BC; Thu, 09 Apr 2026 02:42:34 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED 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 29F231E08C for ; Thu, 09 Apr 2026 02:42:33 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id B46A24BA2E1E for ; Thu, 9 Apr 2026 06:42:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B46A24BA2E1E Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=ry4lx0Az; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=fCkRKPMU; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=ry4lx0Az; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=fCkRKPMU Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id 6F5854BA5436 for ; Thu, 9 Apr 2026 06:42:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6F5854BA5436 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6F5854BA5436 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775716926; cv=none; b=CPDd+7tGd55EnrHmLpXp7lMIqwO4BIYfuJIwlxJwOawMfU8V3CQ8TtGCqpnzWBgC/ILB9Muzy/jb1m7IwFk5tM83FdY90HJ2KSz4Yn7muvDIaw3yf/f4s7FPckfRAA0sq88VZz1YXcjH5ZNNGsFZe88/bddNwCUiR5Nkz//iShU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775716926; c=relaxed/simple; bh=nrecPsxUt2T6bQ8hBFoj0T1q+4ZzC657r34DtsWgQ08=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature: Message-ID:Date:MIME-Version:Subject:To:From; b=u7JGAk0Xc/OinNtmjRopce3gtpccltaFgDoQcpuvw4uI9DEXNiJ29MB99h20kg7g4zvpSYqUGnRTrGpMyrRPFsNXziEHRrhqbkanD14o9SEjBpPCez1miRj1TWRt3yoiVcvNbyBvV1Bx/sTPewpt+XCFqv2b/AluP0Jcv4+DwJQ= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6F5854BA5436 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 2598D4EDCC; Thu, 9 Apr 2026 06:42:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1775716925; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=yHaGF6IZHEfiXFAmBhRjsduKLFBP/PA6RpBKfnxZUhk=; b=ry4lx0AzZynSB5Sl7G35XK5LmLH0s8lqlsSnvyftwMhz06Ym+Y5Nm/GE+356eg0k9iDJoq JwWR9hq9p4uHXf20a7zjr3m8wZ2kvNComsGj6x+HKYht0Zg7fmttMEb+2SrkNaC9Yq13xc 9xGMUd6tGPf+o/99oMixiUUdS5GrW64= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1775716925; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=yHaGF6IZHEfiXFAmBhRjsduKLFBP/PA6RpBKfnxZUhk=; b=fCkRKPMUHOiHQaHESfGtuv+KK4dY5TpWVSM4yqW1I3HnolbA6G3O82SXIuMIsqm4kjfafD 4MJXibT3X6TnHWCQ== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1775716925; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=yHaGF6IZHEfiXFAmBhRjsduKLFBP/PA6RpBKfnxZUhk=; b=ry4lx0AzZynSB5Sl7G35XK5LmLH0s8lqlsSnvyftwMhz06Ym+Y5Nm/GE+356eg0k9iDJoq JwWR9hq9p4uHXf20a7zjr3m8wZ2kvNComsGj6x+HKYht0Zg7fmttMEb+2SrkNaC9Yq13xc 9xGMUd6tGPf+o/99oMixiUUdS5GrW64= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1775716925; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=yHaGF6IZHEfiXFAmBhRjsduKLFBP/PA6RpBKfnxZUhk=; b=fCkRKPMUHOiHQaHESfGtuv+KK4dY5TpWVSM4yqW1I3HnolbA6G3O82SXIuMIsqm4kjfafD 4MJXibT3X6TnHWCQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 100564A0B3; Thu, 9 Apr 2026 06:42:05 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id H9OPAT1K12k5IwAAD6G6ig (envelope-from ); Thu, 09 Apr 2026 06:42:05 +0000 Content-Type: multipart/mixed; boundary="------------N9cGvEPwd1lSmtOwuEYJdc5u" Message-ID: <337213ec-dce2-47d2-b04a-21aaf3d849dc@suse.de> Date: Thu, 9 Apr 2026 08:42:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/2] gdb: use get_current_frame consistently in print_stop_location To: Andrew Burgess , gdb-patches@sourceware.org References: <20260331132342.1050954-1-tdevries@suse.de> <640943dbfd2e2d6555be950b04a4c50288e3334a.1775383137.git.aburgess@redhat.com> Content-Language: en-US From: Tom de Vries In-Reply-To: <640943dbfd2e2d6555be950b04a4c50288e3334a.1775383137.git.aburgess@redhat.com> X-Spamd-Result: default: False [-3.20 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MIME_BASE64_TEXT_BOGUS(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[multipart/mixed,text/plain,text/x-patch]; MIME_BASE64_TEXT(0.10)[]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+,1:+,2:+]; RCPT_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.de:mid]; HAS_ATTACHMENT(0.00)[] 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 This is a multi-part message in MIME format. --------------N9cGvEPwd1lSmtOwuEYJdc5u Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/5/26 12:12 PM, Andrew Burgess wrote: > In print_stop_location, in the PRINT_UNKNOWN case we currently use a > strange mix of get_current_frame and get_selected_frame. This works > fine because at the point print_stop_location is called the selected > frame will always be the current frame, but calling these two > different functions is confusing, at least for me. > > As we are stopping, and deciding whether to print information about > the frame, it makes sense, I think, to make the choice based on the > current frame, and so let's call get_current_frame once, and then use > that result throughout the decision making process. > > There should be no user visible changes after this commit. Hi Andrew, thanks for looking into this, for me using these two different functions is also confusing. While reviewing this patch I wondered why this line at the end of the function still uses get_selected_frame: ... print_stack_frame (get_selected_frame (nullptr), 0, source_flag, 1); ... so I tried to use get_current_frame () there as well, and ran into trouble in these ada test-cases: ... 1 gdb.ada/catch_assert_if.exp: 6 gdb.ada/catch_ex.exp: 6 gdb.ada/excep_handle.exp: 1 gdb.ada/mi_catch_assert.exp: 6 gdb.ada/mi_catch_ex.exp: 3 gdb.ada/mi_catch_ex_hand.exp: 1 gdb.ada/mi_ex_cond.exp: ... I investigated this, and found that bpstat_print may change the selected frame, specifically ada_catchpoint::print_it which calls ada_find_printable_frame. As it happens, ada_catchpoint::print_it returns PRINT_SRC_AND_LOC, so it doesn't interact with the PRINT_UNKNOWN case. But if I consider the scenario where ada_catchpoint::print_it would return PRINT_UNKNOWN, it seems more logical to me to use the selected frame there as well. That is, if we're stepping in some function foo, and run into an ada catchpoint, and ada_catchpoint::print_it selects the frame in foo, and ada_catchpoint::print_it returns PRINT_UNKNOWN, you want to use the selected frame in the PRINT_UNKNOWN case to select SRC_LINE, which is appropriate because as far as the user can see, we haven't left foo. So I'm proposing a change to this patch (attached below, doesn't apply to the first but to the second patch) that: - introduces a variable print_frame - assigns get_selected_frame (nullptr) to print_frame - adds a comment explaining how print_frame relates to the stop frame - uses print_frame everywhere in the function I tested the series in combination with the attached patch on x86_64-linux, and found no regressions. Thanks, - Tom --------------N9cGvEPwd1lSmtOwuEYJdc5u Content-Type: text/x-patch; charset=UTF-8; name="tmp.patch" Content-Disposition: attachment; filename="tmp.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwppbmRleCAzNDRmMTNk ZjRmYS4uNjg3MzkwZjI0ZGQgMTAwNjQ0Ci0tLSBhL2dkYi9pbmZydW4uYworKysgYi9nZGIv aW5mcnVuLmMKQEAgLTkzNDksMTggKzkzNDksMjIgQEAgcHJpbnRfc3RvcF9sb2NhdGlvbiAo Y29uc3QgdGFyZ2V0X3dhaXRzdGF0dXMgJndzKQogICBzdHJ1Y3QgdGhyZWFkX2luZm8gKnRw ID0gaW5mZXJpb3JfdGhyZWFkICgpOwogCiAgIGJwc3RhdF9yZXQgPSBicHN0YXRfcHJpbnQg KHRwLT5jb250cm9sLnN0b3BfYnBzdGF0LCB3cy5raW5kICgpKTsKKyAgLyogRnVuY3Rpb24g YnBzdGF0X3ByaW50IHNlbGVjdHMgdGhlIGZyYW1lIHRvIHByaW50LiAgVHlwaWNhbGx5LCB0 aGF0IGlzIHRoZQorICAgICBzdG9wIGZyYW1lLCBpbiBvdGhlciB3b3JkcyBnZXRfY3VycmVu dF9mcmFtZSAoKS4gIEJ1dCBicHN0YXRfcHJpbnQgbWF5CisgICAgIHNlbGVjdCBhIGRpZmZl cmVudCBmcmFtZSwgc2VlIGZvciBpbnN0YW5jZSBhZGFfY2F0Y2hwb2ludDo6cHJpbnRfaXQu ICAqLworICBmcmFtZV9pbmZvX3B0ciBwcmludF9mcmFtZSA9IGdldF9zZWxlY3RlZF9mcmFt ZSAobnVsbHB0cik7CisKICAgc3dpdGNoIChicHN0YXRfcmV0KQogICAgIHsKICAgICBjYXNl IFBSSU5UX1VOS05PV046CiAgICAgICAvKiBGSVhNRTogY2FnbmV5LzIwMDItMTItMDE6IEdp dmVuIHRoYXQgYSBmcmFtZSBJRCBkb2VzIChvcgogCSBzaG91bGQpIGNhcnJ5IGFyb3VuZCB0 aGUgZnVuY3Rpb24gYW5kIGRvZXMgKG9yIHNob3VsZCkgdXNlCiAJIHRoYXQgd2hlbiBkb2lu ZyBhIGZyYW1lIGNvbXBhcmlzb24uICAqLwotICAgICAgaWYgKGZyYW1lX2luZm9fcHRyIGZy YW1lID0gZ2V0X2N1cnJlbnRfZnJhbWUgKCk7Ci0JICB0cC0+Y29udHJvbC5zdG9wX3N0ZXAK LQkgICYmICh0cC0+Y29udHJvbC5zdGVwX2ZyYW1lX2lkID09IGdldF9mcmFtZV9pZCAoZnJh bWUpKQotCSAgJiYgdHAtPmNvbnRyb2wuaW5fc3RlcF9zdGFydF9mdW5jdGlvbiAoZnJhbWUp KQorICAgICAgaWYgKHRwLT5jb250cm9sLnN0b3Bfc3RlcAorCSAgJiYgKHRwLT5jb250cm9s LnN0ZXBfZnJhbWVfaWQgPT0gZ2V0X2ZyYW1lX2lkIChwcmludF9mcmFtZSkpCisJICAmJiB0 cC0+Y29udHJvbC5pbl9zdGVwX3N0YXJ0X2Z1bmN0aW9uIChwcmludF9mcmFtZSkpCiAJewot CSAgc3ltdGFiX2FuZF9saW5lIHNhbCA9IGZpbmRfZnJhbWVfc2FsIChmcmFtZSk7CisJICBz eW10YWJfYW5kX2xpbmUgc2FsID0gZmluZF9mcmFtZV9zYWwgKHByaW50X2ZyYW1lKTsKIAkg IGlmIChzYWwuc3ltdGFiICE9IHRwLT5jdXJyZW50X3N5bXRhYikKIAkgICAgewogCSAgICAg IC8qIEZpbmlzaGVkIHN0ZXAgaW4gc2FtZSBmcmFtZSBidXQgaW50byBkaWZmZXJlbnQgZmls ZSwgcHJpbnQKQEAgLTk0MDMsNyArOTQwNyw3IEBAIHByaW50X3N0b3BfbG9jYXRpb24gKGNv bnN0IHRhcmdldF93YWl0c3RhdHVzICZ3cykKICAgICAgTE9DQVRJT046IFByaW50IG9ubHkg bG9jYXRpb24KICAgICAgU1JDX0FORF9MT0M6IFByaW50IGxvY2F0aW9uIGFuZCBzb3VyY2Ug bGluZS4gICovCiAgIGlmIChkb19mcmFtZV9wcmludGluZykKLSAgICBwcmludF9zdGFja19m cmFtZSAoZ2V0X3NlbGVjdGVkX2ZyYW1lIChudWxscHRyKSwgMCwgc291cmNlX2ZsYWcsIDEp OworICAgIHByaW50X3N0YWNrX2ZyYW1lIChwcmludF9mcmFtZSwgMCwgc291cmNlX2ZsYWcs IDEpOwogfQogCiAvKiBTZWUgYHByaW50X3N0b3BfZXZlbnRgIGluIGluZnJ1bi5oLiAgKi8K --------------N9cGvEPwd1lSmtOwuEYJdc5u--