From patchwork Tue Mar 24 09:53:31 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aditya Vidyadhar Kamath X-Patchwork-Id: 132206 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id C4DEC4BB3BC9 for ; Tue, 24 Mar 2026 09:54:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C4DEC4BB3BC9 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=LfRCjgKc X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org 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 998E84BA23C8 for ; Tue, 24 Mar 2026 09:53:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 998E84BA23C8 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 998E84BA23C8 Authentication-Results: server2.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=1774346030; cv=none; b=gZtxpT/6D5exFp6U+fUF0+BQmCnHV2Sj3hHRHRPVYrlQ0+TWC2YTw07IhbethoNMy/UCd2l9CCfDUAwi52EX2qDVaWuoxxi6yYdFC8Sk25tzpCnF3X2nhA3WP+3fPtWiS/rjQsa5lmEmyXvxuMMkSDFmEMM7TfXJNNoBAQez0GA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774346030; c=relaxed/simple; bh=240tWwFpUctx96fLBQR7Dqn5dKjJ5vHa2fVPN1d8ZhI=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=taXC9UYmA9kS3MyGhZJoKWq1QQEToaf8t+Hb3E8lc6ucSu+SHchXfjpxXYbyR5T3pR2cd3YfsIcd9tngtAfRV6W0+ilbLWqzeYX6di7ATaJhhoL1WhoYHPBZEZuS3jN+PC1E9TA20c1fjjC1mVYYdg3F11hKAF7bKJrDySj37ws= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 998E84BA23C8 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-354a18c48b5so4191042a91.1 for ; Tue, 24 Mar 2026 02:53:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774346029; x=1774950829; 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=zz1ERky6LULMMeghaHLhw00gB32hZGyVnwR3D/JiV6g=; b=LfRCjgKciNm5SWebbZ+oaAUpipzFBbfL+I8OqgaU6k136pZSmwBOnWcj8JMh9Im9Lg /wJC8OBkOwK8a2fbJPjxGoYXryKfZLe+rsKc+bSygx8KmzxSZGG6eXO9fSy27d4OpExD ps0cita6j0MZnbit7L+jfSpXMEMpX7R/a8QCtL7l1i1UuBwhAsM6hD27lq/UZNCrfw5P 9Bi8ReFlB/gyKNOu2lhGqa2P5l51up1ZE+8KPlen/136Cck2NqRO6Cyg9/BNrsZbr6lh X1XBXyUVy8mhpdBYEAbatRCEBa6RZkHzQlkPm3kaLYao+8Zw7+19PnbNOINvpukPPsx0 mawg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774346029; x=1774950829; 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=zz1ERky6LULMMeghaHLhw00gB32hZGyVnwR3D/JiV6g=; b=MeMpltA1k5XAOVot4VmZPnbGspS+H5lE7NIuPHvH5ywhzk7ymqkybKBqHXIFyPEL/P cacE60y4fH1qomufoRERrnVhOL0YZlrOacKDkBBCwrEJ3tRFa8o85vHEEeBoZOFOIfar DdhAnBmMV+9YOHgRaC48yVg9KKUE0tbRsiQpkSY7hTNAbILexH9O38dPq0DsnnMBp3fn Os5qF75+7zK5VWoV1HtTwSx/AG28PmbOsP4LYkTayQmoRqoXSzJxYDpgb0gHvqxZwZAD GrvW5fpxO2dolxgPurVoSXrxb0HVjTGPPNKdMTgHIxB+KnK4ekiSRrS5dDGGlC1rqjnP zCtw== X-Gm-Message-State: AOJu0YxAoa8j/zPRhhpoQg25LmsDPAxgIjpzqpWiEZaNAEiAXruWFt/Z pAPIN97DKYb1jDweqi67XTLcAfAB7oiItelF2gVwLOP+nWwolr81dJwa/2KpxV1w X-Gm-Gg: ATEYQzyH+SVxC9JRf+BgWLqScD20uNmYPWOvZMx0GWga9WU71Y6bX0w4/+0EwXUMEoZ AcSl6gNa4nfXyIRgEaDdIA/GdSHwFTy75nAtAz2ewqqwRTStCXNWiDz5EQCIGp9k60K+Mo9VClm 1dRkn7711wCFIkRn2NSgMtDD50jgwEQHegSm8kCDkBMPW67gY8HEWxJ3alpbs6N6APAosD8qxuP tS3UWf7Idiw4uRs6EPZcv1FK7asrZMPtuA6iFL5eqps/tSMnd6BrETOSwOj/P3YcKByF0mvDz94 uS9+GolBNF+zH4bTXwOym6QlKubeXNPdIZmmIeedYQtRlyIsCgsJfqaKwKTFnIjH2pKb3z3QPy0 kntf0w5P8KAcoU4GbdRf0BQfWkpzmSWQjXjjEGEmNuBsZV/UX8Pz2njyhbTsRsP/GWzhm0Sa86w VE5XXyZIlu2aFjHmCnFRnN0n5LqJlsbtq+tNO1yBwLyAks3g== X-Received: by 2002:a17:90a:f17:b0:35b:e4d5:efeb with SMTP id 98e67ed59e1d1-35be4d5f0b9mr5524106a91.33.1774346029498; Tue, 24 Mar 2026 02:53:49 -0700 (PDT) Received: from localhost.localdomain ([122.171.16.28]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c74453295a8sm10501421a12.28.2026.03.24.02.53.46 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 24 Mar 2026 02:53:48 -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, Aditya Vidyadhar Kamath Subject: [PATCH 2/2] Fix AIX core file handling: prevent crashes during GDB quit Date: Tue, 24 Mar 2026 15:23:31 +0530 Message-ID: <20260324095330.46665-2-akamath996@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GB_FREEMAIL_NUM, GIT_PATCH_0, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on 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~patchwork=sourceware.org@sourceware.org From: Aditya Vidyadhar Kamath This patch fixes two root causes that caused GDB to crash in AIX while quitting debugger both while analysing AIX core files. They are: 1: gdb/aix-thread.c: (pd_disable function) When debugging core files, all threads are terminated and the pthdb session data is invalid. Calling pthdb_session_destroy() on this invalid session causes undefined behaviour. So check if it is a running process and then only clear the session data. For core files do not do it. 2: bfd/coffgen.c: (_bfd_coff_free_cached_info): Exclude core files AIX core files use the XCOFF format which have different tdata structure (core_dumpxx) than COFF objects (coff_tdata). The function was incorrectly treating core file tdata as COFF data and attempting to free hash tables that don't exist in the core dump structure, resulting in segment faults. So restrict to bfd_object format only. We can see this problem when quit after debugging a large core file in AIX 7.3. Ex: Program terminated with signal SIGSEGV, Segmentation fault. from /opt/freeware/lib/libpython3.9.a(libpython3.9.so) (gdb)q Fatal signal: Segmentation fault ----- Backtrace ----- 0x1009fbffb ??? 0x1009fc11f ??? 0x1005c3587 ??? 0x1005c3833 ??? 0x4fdf ??? --- bfd/coffgen.c | 3 +-- gdb/aix-thread.c | 7 ++++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/bfd/coffgen.c b/bfd/coffgen.c index 030dbc1dc79..98d6f98d575 100644 --- a/bfd/coffgen.c +++ b/bfd/coffgen.c @@ -3310,8 +3310,7 @@ _bfd_coff_free_cached_info (bfd *abfd) struct coff_tdata *tdata; if (bfd_family_coff (abfd) - && (bfd_get_format (abfd) == bfd_object - || bfd_get_format (abfd) == bfd_core) + && bfd_get_format (abfd) == bfd_object && (tdata = coff_data (abfd)) != NULL) { if (tdata->section_by_index) diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c index e891f510e08..e80e4db0d79 100644 --- a/gdb/aix-thread.c +++ b/gdb/aix-thread.c @@ -1003,7 +1003,12 @@ pd_disable (inferior *inf) return; if (!data->pd_active) return; - pthdb_session_destroy (data->pd_session); + /* For core files, all threads are terminated. Calling + pthdb_session_destroy (data->pd_session) on it is incorrect + and will cause undefined behaviour. So skip it since we + are cleaning. For binaries clean up. */ + if (target_has_execution ()) + pthdb_session_destroy (data->pd_session); pid_to_prc (&inferior_ptid); data->pd_active = 0;