From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id E2BDF385E008 for ; Mon, 8 Jan 2024 15:25:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E2BDF385E008 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 E2BDF385E008 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=1704727525; cv=none; b=bkl+rh1zZhQZuFfj3ew4kVm0R16vwH3ArXeAkMHTQOG0PYKOtiEh1WYSkTVWaKYfMvp1iwrLEaV4XuAfC565HgRcI7kYv3IURVZFQt0l8/lWfmERhDqXyZG0vJZUAErO76Jhjio5et7pJ1zJm6NiKMs5vwn1RgKveux5TLcEGO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704727525; c=relaxed/simple; bh=KbUw3yAPuS3/nnuzinHeh2SMHf8ZPP5v0H04ea6TIJE=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=HSQ3TqurvigDWLa1/8Y0yJGxFZWPQYM9hKokFqOOBXJ9CljwBDeTmWUvtAadpxVyltRk2Uf2Hpajvh4bcH7fNpwTbJeHG7kSWOixNghKw1ShYcjb7jo3qgO3rUtxHSPiDMJf10r1jSSYEOcy0+S+t+MVKQNV7lco9yAzbyf/fEg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104: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 BF2D822006 for ; Mon, 8 Jan 2024 15:25:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704727521; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5F639/N/P6hGQhEycUriPlC8z+hZv+o4BA4cbExvBA0=; b=ZIhryTM+0k5jaxYu+8pZJohzK7wZ117pqi/Fq/zh7dl/QLrM3dTskxuBHQ4UzvVC8ipm16 36MfX7UlbNQTGFfut6TwbCEnnCPBkCM9Dvtpq+q1PmWSR9luvHTPKgajgELmx6TstNIdmj drNRoBuP5he99ij39v2Z03Lb0knfprs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704727521; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5F639/N/P6hGQhEycUriPlC8z+hZv+o4BA4cbExvBA0=; b=CLiePYilXIOSueErzo5ebo9Nvu2SLuvQ78kRj1As5Csw8YPfTmksPpOv84k6WNGSkL/bld xq0IYwvzmr/F6mDQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704727521; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5F639/N/P6hGQhEycUriPlC8z+hZv+o4BA4cbExvBA0=; b=ZIhryTM+0k5jaxYu+8pZJohzK7wZ117pqi/Fq/zh7dl/QLrM3dTskxuBHQ4UzvVC8ipm16 36MfX7UlbNQTGFfut6TwbCEnnCPBkCM9Dvtpq+q1PmWSR9luvHTPKgajgELmx6TstNIdmj drNRoBuP5he99ij39v2Z03Lb0knfprs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704727521; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5F639/N/P6hGQhEycUriPlC8z+hZv+o4BA4cbExvBA0=; b=CLiePYilXIOSueErzo5ebo9Nvu2SLuvQ78kRj1As5Csw8YPfTmksPpOv84k6WNGSkL/bld xq0IYwvzmr/F6mDQ== 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 988F713CA8 for ; Mon, 8 Jan 2024 15:25:21 +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 cLXeI+ETnGWgUQAAD6G6ig (envelope-from ) for ; Mon, 08 Jan 2024 15:25:21 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 2/3] [gdb] Fix info checkpoints Date: Mon, 8 Jan 2024 16:25:52 +0100 Message-Id: <20240108152553.4578-3-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240108152553.4578-1-tdevries@suse.de> References: <20240108152553.4578-1-tdevries@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Level: ** X-Spam-Level: X-Spamd-Bar: / Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=ZIhryTM+; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=CLiePYil X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [0.49 / 50.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; FROM_HAS_DN(0.00)[]; R_MISSING_CHARSET(2.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; BROKEN_CONTENT_TYPE(1.50)[]; RCPT_COUNT_ONE(0.00)[1]; NEURAL_HAM_LONG(-1.00)[-1.000]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_NONE(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DKIM_TRACE(0.00)[suse.de:+]; MX_GOOD(-0.01)[]; MID_CONTAINS_FROM(1.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,sourceware.org:url]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; NEURAL_HAM_SHORT(-0.20)[-1.000]; RCVD_TLS_ALL(0.00)[]; BAYES_HAM(-3.00)[100.00%] X-Spam-Score: 0.49 X-Rspamd-Queue-Id: BF2D822006 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,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 List-Id: Consider test-case gdb.base/checkpoint.exp. At some point, it issues an info checkpoints command: ... (gdb) info checkpoints^M * 0 process 30570 (main process) at 0x0^M 1 process 30573 at 0x4008bb, file checkpoint.c, line 49^M 2 process 30574 at 0x4008bb, file checkpoint.c, line 49^M 3 process 30575 at 0x4008bb, file checkpoint.c, line 49^M 4 process 30576 at 0x4008bb, file checkpoint.c, line 49^M 5 process 30577 at 0x4008bb, file checkpoint.c, line 49^M 6 process 30578 at 0x4008bb, file checkpoint.c, line 49^M 7 process 30579 at 0x4008bb, file checkpoint.c, line 49^M 8 process 30580 at 0x4008bb, file checkpoint.c, line 49^M 9 process 30582 at 0x4008bb, file checkpoint.c, line 49^M 10 process 30583 at 0x4008bb, file checkpoint.c, line 49^M ... According to the docs, each of these (0-10) is a checkpoint. But the pc address (as well as the file name and line number) is missing for checkpoint 0. Fix this by sampling the pc value for the current process in info_checkpoints_command, such that we have instead: ... * 0 process 30570 (main process) at 0x4008bb, file checkpoint.c, line 49^M ... Tested on x86_64-linux. PR gdb/31211 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31211 --- gdb/linux-fork.c | 15 +++++++++++++-- gdb/testsuite/gdb.base/checkpoint.exp | 8 +++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c index 177a012ec08..659264ab712 100644 --- a/gdb/linux-fork.c +++ b/gdb/linux-fork.c @@ -594,16 +594,27 @@ info_checkpoints_command (const char *arg, int from_tty) continue; printed = true; - if (fi.ptid == inferior_ptid) + bool is_current = fi.ptid == inferior_ptid; + if (is_current) gdb_printf ("* "); else gdb_printf (" "); - ULONGEST pc = fi.pc; gdb_printf ("%d %s", fi.num, target_pid_to_str (fi.ptid).c_str ()); if (fi.num == 0) gdb_printf (_(" (main process)")); + + if (is_current && inferior_thread ()->state == THREAD_RUNNING) + { + gdb_printf (_(" \n")); + continue; + } + gdb_printf (_(" at ")); + ULONGEST pc + = (is_current + ? regcache_read_pc (get_thread_regcache (inferior_thread ())) + : fi.pc); gdb_puts (paddress (gdbarch, pc)); symtab_and_line sal = find_pc_line (pc, 0); diff --git a/gdb/testsuite/gdb.base/checkpoint.exp b/gdb/testsuite/gdb.base/checkpoint.exp index a4ea94354b7..9ba5b3e82ec 100644 --- a/gdb/testsuite/gdb.base/checkpoint.exp +++ b/gdb/testsuite/gdb.base/checkpoint.exp @@ -84,9 +84,11 @@ gdb_test "checkpoint" "" "checkpoint nine" gdb_test "continue 10" "breakpoint 1.*" "break1 ten" gdb_test "checkpoint" "" "checkpoint ten" -gdb_test "info checkpoints" \ - " 1 .* 2 .* 3 .* 4 .* 5 .* 6 .* 7 .* 8 .* 9 .* 10 .*" \ - "info checkpoints one" +set info_checkpoints_re "" +for { set i 0 } { $i <= 10 } { incr i } { + append info_checkpoints_re " $i .* file .*" +} +gdb_test "info checkpoints" $info_checkpoints_re "info checkpoints one" delete_breakpoints gdb_breakpoint $break2_loc -- 2.35.3