From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id cNb6E24bY2aw6SkAWB0awg (envelope-from ) for ; Fri, 07 Jun 2024 10:38:38 -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=tlpymG0L; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Flee3wfU; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=tlpymG0L; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Flee3wfU; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 4C8641E0C1; Fri, 7 Jun 2024 10:38:38 -0400 (EDT) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (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 F3BC81E092 for ; Fri, 7 Jun 2024 10:38:35 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0E80B391B3D9 for ; Fri, 7 Jun 2024 14:38:29 +0000 (GMT) Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id 82D1A38F7B9F for ; Fri, 7 Jun 2024 14:38:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 82D1A38F7B9F 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 82D1A38F7B9F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717771092; cv=none; b=Ddh9vB713rvzhdhq3LJwZbL0q8T4nJlniqoOWeDJCPbcpB7OrF6EFUyNVwhqXvi/G5HYIn4wCnxS5PiAdu62x3sMGwdxodzerl4mcsQ/U/2UrvIqVFiMEm7KCwy9I4Fjye+JVrMS8EfGvr3cQBqABjd1pVGuxW7Fi/aY7UPgFqo= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717771092; c=relaxed/simple; bh=oenzHnQJd046o1a7JZJpdY6Hh04+DAHwTbDaJVsfpJA=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=IGEEkNHlxUIu/qua/lkbpS45e26WMLxPNYe2yEtbgAhL4VDicV4cnnoKtrF8SL48oVmnPUIElHPTDnMYl3GYziPlcA1Bxs/L2Y0mf+BG0x/lmuuMkUJ92mfjBWSzQWNnExQPAg5f+ELvvuuzUc2+sWm99A9mqm9u5bi7ix8jJ+8= 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-out2.suse.de (Postfix) with ESMTPS id 9FE031FB9E for ; Fri, 7 Jun 2024 14:37:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1717771074; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=WDjwYnKV87yF27qbS6uXItzsIYehbj8NeSMFJ/f4c+Y=; b=tlpymG0LJnYt4jDeK/tmLY9WgeeH/SvNaCToh13NFJrqwj2F97r+p1KZTcJefsHg+zVH4j nGVdgAEuYm8ZjbXkL8xY2FP24tXXEhPV3Ztl7WJ2ZrtwK9cH1zWFktvmMGK3Pe9GA8zLmW KMxRSwXvd6iP+2ebN0qPBWuv2CWViQk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1717771074; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=WDjwYnKV87yF27qbS6uXItzsIYehbj8NeSMFJ/f4c+Y=; b=Flee3wfU40S3FO+uLB96eHKqoo2lg6MSR2m5ZZr6ZF7J+lS9CmQV3m/CfFCpSqx4AxQnd7 OGjiUQDEOJUHCWAg== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=tlpymG0L; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=Flee3wfU DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1717771074; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=WDjwYnKV87yF27qbS6uXItzsIYehbj8NeSMFJ/f4c+Y=; b=tlpymG0LJnYt4jDeK/tmLY9WgeeH/SvNaCToh13NFJrqwj2F97r+p1KZTcJefsHg+zVH4j nGVdgAEuYm8ZjbXkL8xY2FP24tXXEhPV3Ztl7WJ2ZrtwK9cH1zWFktvmMGK3Pe9GA8zLmW KMxRSwXvd6iP+2ebN0qPBWuv2CWViQk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1717771074; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=WDjwYnKV87yF27qbS6uXItzsIYehbj8NeSMFJ/f4c+Y=; b=Flee3wfU40S3FO+uLB96eHKqoo2lg6MSR2m5ZZr6ZF7J+lS9CmQV3m/CfFCpSqx4AxQnd7 OGjiUQDEOJUHCWAg== 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 87E53133F3 for ; Fri, 7 Jun 2024 14:37:54 +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 t0euH0IbY2ZDDQAAD6G6ig (envelope-from ) for ; Fri, 07 Jun 2024 14:37:54 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH] [gdb/tdep] Use cached breakpoint kind in breakpoint_kind Date: Fri, 7 Jun 2024 16:38:21 +0200 Message-Id: <20240607143821.29797-1-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Level: X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.de:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim, imap1.dmz-prg2.suse.org:helo, imap1.dmz-prg2.suse.org:rdns] X-Rspamd-Action: no action X-Rspamd-Queue-Id: 9FE031FB9E X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spam-Score: -3.01 X-Spam-Status: No, score=-12.3 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 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 test-case gdb.base/solib-probes-nosharedlibrary.exp on arm-linux, I get: ... (gdb) continue^M Continuing.^M ^M Program received signal SIGILL, Illegal instruction.^M 0xf7fd267a in ?? ()^M (gdb) FAIL: $exp: continue to breakpoint: main ... This happens as follows: - the starti command is called, - gdb loads symbols for ld.so, - the "shlib events" breakpoint is inserted at the address of _dl_debug_state, - execution stops at ld.so _start, and the inserted breakpoint is removed, - the nosharedlibrary command is called, - gdb forgets about all shared library symbols, - the continue command is called, - gdb re-inserts the "shlib events" breakpoint, but the call to breakpoint_kind returns the wrong value: ARM_BP_KIND_ARM instead of ARM_BP_KIND_THUMB, so the wrong type of breakpoint is inserted, and - when execution hits the breakpoint, the SIGILL triggers. In order to correctly set a breakpoint on an address for arm, gdb needs to known whether that address is in thumb or arm code, and the problem is that that information is no longer available due to the nosharedlibrary command. However, the breakpoint kind is is available from the previous time the breakpoint was inserted. Fix this in breakpoint_kind, by using the info cached in bl->target_info.kind, if available. Tested on arm-linux. PR tdep/31817 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31817 --- gdb/breakpoint.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index a973518ac5f..0c99ccc9568 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -2792,7 +2792,11 @@ breakpoint_kind (const struct bp_location *bl, CORE_ADDR *addr) regcache, addr); } else - return gdbarch_breakpoint_kind_from_pc (bl->gdbarch, addr); + { + if (bl->target_info.kind != 0) + return bl->target_info.kind; + return gdbarch_breakpoint_kind_from_pc (bl->gdbarch, addr); + } } /* Rethrow the currently handled exception, if it's a TARGET_CLOSE_ERROR. base-commit: 3a659c2a30f40c2a734fda5566098804b5ee38fc -- 2.35.3