From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id CVckJ5beOGrODxMAWB0awg (envelope-from ) for ; Mon, 22 Jun 2026 03:04:54 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=Q2ORgdk1; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 9CD621E098; Mon, 22 Jun 2026 03:04:54 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable 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 273BA1E024 for ; Mon, 22 Jun 2026 03:04:54 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BD1F34BA23DA for ; Mon, 22 Jun 2026 07:04:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BD1F34BA23DA Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=Q2ORgdk1 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by sourceware.org (Postfix) with ESMTPS id B8EA24BA2E0C for ; Mon, 22 Jun 2026 07:04:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B8EA24BA2E0C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B8EA24BA2E0C Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::1031 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1782111870; cv=none; b=Fq/GgMnweUoDBD1tA8XdrwE5kebaZWRPP0Zi0qA0LnJO+NxUCA20liL4YE/p3TztsY4e7d78tbZK5rxzi0n/tcwOSFWqR+SYT92OjQWEUybcC/FqfwKULrBSRRO9sAqv067EYzQXY3dx68t93lFSxIzSjilHC/IZ1O8scUF97R0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1782111870; c=relaxed/simple; bh=69x1vb3eSa9v8c5wFMF0QA15HEMSQM8sFOxo1reMh4g=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=X7gpmzG8i42y94mOQGTJOk9k6K/R8GaUEOT+KigQDB+s/6gVUA437UUXDm2N1N6xX/d7HfRBtXY2zfhGdBIZ6G34FjOs5qgR20noMVoljXPu5I7dizeBm7Q8DzwDfpD2sfTLGYIqsrKsl0bAX/sp31Lsm0ShSVSxpMDT9HkKRgI= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=Q2ORgdk1 DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B8EA24BA2E0C Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-36d6bb38b44so2544681a91.0 for ; Mon, 22 Jun 2026 00:04:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782111870; x=1782716670; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=SgsgIR5TBPpd4FcxMMxBkjq91Kz4HrEtpFW22X1qlFE=; b=Q2ORgdk1ae4fptEE90ZN0HeWVhkNZjpuFigkeKp4zjxy6oJYPN8wnlLeXeFxzSP4jj 56AdyXR1TsXQFa+4TWAlCCa8ZEqhXwUS+EpS/3t1b5XrNRI2DnhSifGB0aOcyi7hGgfS NKlvaoHD7KdvmXQ1oHvFi0W0/37+hj8CaubItUYjF/FQrPEvJwQ2WLXy6RtQCLOgi4Ug caK5o/R5E9nOnozS7RtiIEGMOYHd6mH/0S3yZHc98TanJT5L9YmNY5RsMzHX1jcqKfls iKqpdqGanm9GXQvDg6tsRu1MzRPXWJIO0QF4QgJmi/9C9/wyXCtczTgOfR+7CnW/FHro AoWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782111870; x=1782716670; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SgsgIR5TBPpd4FcxMMxBkjq91Kz4HrEtpFW22X1qlFE=; b=C7pv7eaFTfv4TnqGNV+8Wafq7VyEwzRLLjSILlLHjO58xHlQIe/mAYEnAEIRAfm4T0 BWQVw1dqCUDju1OrPFiDcfrOAcgRNCH9rQ6h2ohtO8HVdx6plXQFepAdmJlmamozPO64 +F88TtO4VDF9jbfsAz0RJT6DKkuQp/jq4M0krMaU923adwgHTLlgMP7T47BD4fEnKA11 HB33lsXMY+XZWtOes1jyPPBXH5xTHQZhrTgGsJeNFsdKFRJgkf/nYnpwFR5QsG0N520Q Hrzn3ehxUoionjTutJ44Ao9+retU6f0+0M65vY/DnD0msgmQ2VmutieOMB6oilGA8hDf 2B7g== X-Gm-Message-State: AOJu0YwntCgdwhURgK931ZwS0zR1WUIiUqsh43b/OCFc6GhbbRLNoP8x 1W+4vLOfxwNYC8FDxkV6dgzr2OleX/6ajVEPrdQcJrrDEmkq/m1TK3LY X-Gm-Gg: AfdE7ckttRcYCOx9U/NkrvEnEjkavpHCX/TnS6vVhba+c8vD6hs3zU1Ay8vcHnRwEtt 9Rk7NZhiO95426Fd4szIMbiQ++/qaMNVuuhYCTgQ5cGIV6K04tFrHtbHQzGYGGWOBShlTbNLjry WvNQMS5t237tf5XXhmKbSiA99n4QtFhiH0npBN/0HogLueZxFYqhLqk5UtKb7oMOxEj827wjDVz SUpgS4JdWkqfnLrpqkgSb/brpwAqHURC7gNuWZ/Hc338J/UNogPwxCOAy2fK3pmJ9LuLmisIFmH uag6UqK1/5H2OrFY7BGpkQr1EbE5LK3OOAExF/4tuh7E2MhVmjF4Ld31pjJroaw0KOHVmBIdkQS hedKN2JZcJgszdeyiPEmL3zL92iv7xv0i3+Z9esU9nBNVTrN2blpnnGYtOXxzOBuV6/VE154EFa 9nXqb5aIo1N5+d/cu/NsoysXHQYhGJ+abM5IZKdxqQCZUapMcAH9s= X-Received: by 2002:a17:90b:4ac3:b0:368:ea0c:1b75 with SMTP id 98e67ed59e1d1-37d15fe4462mr14177996a91.6.1782111869510; Mon, 22 Jun 2026 00:04:29 -0700 (PDT) Received: from dhcp-9-123-15-62.bl1-in.ibm.com ([129.41.58.6]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37d4f2d2615sm6062076a91.10.2026.06.22.00.04.27 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 22 Jun 2026 00:04:29 -0700 (PDT) From: Aditya Vidyadhar Kamath To: ulrich.weigand@de.ibm.com, simon.marchi@polymtl.ca, tom@tromey.com Cc: gdb-patches@sourceware.org, Aditya.Kamath1@ibm.com, sangamesh.swamy@in.ibm.com Subject: [PATCH] Fix AIX SIGSEGV for multi thread debugging. Date: Mon, 22 Jun 2026 12:33:37 +0530 Message-ID: <20260622070336.76784-2-akamath996@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 From: Aditya Kamath When we run threads debugging in AIX we get, Reading symbols from //gdb_tests/continue-pending-status... (gdb) r Starting program: /gdb_tests/continue-pending-status Program received signal SIGSEGV, Segmentation fault. 0x7fe00008 in ?? () (gdb) q A debugging session is active. The reason being in AIX, the __pthread_init symbol returned by pthdb_session_pthreaded() is a function descriptor and not the the direct code address. When GDB set a breakpoint using ms.value_address(), it was setting the breakpoint on the descriptor itself (0xf16365dc) rather than the actual function code. This caused the program to crash at an invalid address (0x7fe00008) when trying to execute from the descriptor location. Debugging further and looking at the history, GDB-17.1/GDB-17.2 knew __pthread_init was a function because STABS symbol was recored with proper type, so we knew it was a function descriptor. After STABS removal symbol is recoreded without type and ms.value_address() returns descriptor address directly. if (cs->c_naux > 1 && ISFCN (cs->c_type)) { fcn_start_addr = cs->c_value; } case XMC_PR: /* A function entry point. */ record_minimal_symbol (reader, namestring, unrelocated_addr (symbol.n_value), sclass == C_HIDEXT ? mst_file_text : mst_text, symbol.n_scnum, objfile); misc_func_recorded = 1; break; The code snippet above was one of the things STABS used to do that helped identify the entry point before. This patch is the fix to the same. --- gdb/aix-thread.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c index 675d8d5070c..5ac71d22237 100644 --- a/gdb/aix-thread.c +++ b/gdb/aix-thread.c @@ -974,7 +974,12 @@ pd_enable (inferior *inf) = lookup_minimal_symbol (current_program_space, stub_name); if (ms.minsym == NULL) return; - data->pd_brk_addr = ms.value_address (); + + /* On AIX, symbols can be function descriptors, so we need to resolve + them to get the actual code address. */ + if (!msymbol_is_function (ms.objfile, ms.minsym, &data->pd_brk_addr)) + return; + if (!create_thread_event_breakpoint (current_inferior ()->arch (), data->pd_brk_addr)) return; -- 2.51.2