From patchwork Fri May 12 07:02:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luke Diamand X-Patchwork-Id: 69208 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DED093858C54 for ; Fri, 12 May 2023 07:02:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DED093858C54 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1683874961; bh=+RKZ598+BGzhlFAN7jZOAoy/YSeyByhnut3ySxDCBBQ=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Help:List-Subscribe:From: Reply-To:From; b=e4znv+GLgsl6EGls6sJSaaUe08D1Gtjtok9tNjeagrZ6HpY+RpA65Wx7iVTRJBl4e Kd9abd3DxWwkK0d7ojZdYOMhskA0LtiiMGBqZx9e7Od+gSGA/I33orLqX7rkP/mJ9e fiD5rtcBOX8LgeCZGn/4K4OJm7bmm3ZugTZJS8Qo= X-Original-To: elfutils-devel@sourceware.org Delivered-To: elfutils-devel@sourceware.org Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2074.outbound.protection.outlook.com [40.107.102.74]) by sourceware.org (Postfix) with ESMTPS id A08893858C5F for ; Fri, 12 May 2023 07:02:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A08893858C5F ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nhUOwHiu8BgmF+h2NbnCnL1NCNcOLzHn6GbgfyxA05QRU37XEeMv59fQYjKoLl6QeHPLcr8nWtrNGA5w6D6rG0TMPyhY3I4N5lf4ZDfJRL2bGJKCOlG/N6nOYhSUFvT2m6FN5JsdlMYsmsN61M+oksShgkxpFnNCkmWM4VLuvQfnNnsZ8pkfdyoMhlN0MSp9sdsTrexrR2fTABokjmb/P2ipZMdmXP+UBlIAlU24OUJDtEgqorKI+CFot7WmTV0jtNZKZm4pX3biwjZa6wolkgYUy462cUdSz4iYVKkZhCRTcVf/FFkDUBoUN46d1AsNzcLRjvsXTlRYSYa32xngqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+RKZ598+BGzhlFAN7jZOAoy/YSeyByhnut3ySxDCBBQ=; b=ftyknL/4zHSkzVpne05UdS5ToaoKSMyMBNMNznZLQvO3mZYlghi9iWFdfVer8y8tOW9+x2rRzS+ZvvlEu657O6eqX47ZcS0K0Xc7xuq/cJyXgC5NAaQulNdpkg/41pasHd4iWriTn0GFH1DZXOABwJGb1DuJxtO66J4zugMCiYDUnuV+gDZwS0WLWubLBeptgSSSrbTS6BrHdq+x5X67oM1tlA8x9svztOpdyYXWMi9nJ+2II1iClNpuSBRqHEKSo1a5ZGMeON11p3uGU6RhDSC6IZjaaVqbnB0yISM9iE7rrC1xaS6gRRZ3p6jk8F8mbW40CRJGOZ3EEdKotQ159A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=roku.com; dmarc=pass action=none header.from=roku.com; dkim=pass header.d=roku.com; arc=none Received: from SN6PR01MB4285.prod.exchangelabs.com (2603:10b6:805:ac::33) by BYAPR01MB4295.prod.exchangelabs.com (2603:10b6:a03:58::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.23; Fri, 12 May 2023 07:02:27 +0000 Received: from SN6PR01MB4285.prod.exchangelabs.com ([fe80::30ab:946a:55cd:522d]) by SN6PR01MB4285.prod.exchangelabs.com ([fe80::30ab:946a:55cd:522d%6]) with mapi id 15.20.6363.029; Fri, 12 May 2023 07:02:27 +0000 To: elfutils-devel@sourceware.org Cc: Florian Weimer , Luke Diamand Subject: [RFC PATCH 1/1] report_r_debug: handle `-z separate-code' and find more modules Date: Fri, 12 May 2023 08:02:18 +0100 Message-Id: <20230512070218.761896-2-ldiamand@roku.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230512070218.761896-1-ldiamand@roku.com> References: <20230512070218.761896-1-ldiamand@roku.com> X-ClientProxiedBy: FR2P281CA0096.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9b::19) To SN6PR01MB4285.prod.exchangelabs.com (2603:10b6:805:ac::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR01MB4285:EE_|BYAPR01MB4295:EE_ X-MS-Office365-Filtering-Correlation-Id: fe143c97-e4b1-4b23-73dc-08db52b6d873 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qygK4H8c3RBpkJob2mgGgTtxyB+0Yja4EcBV2u7xALEhBmPO90e9y97fBPjrB8Khe4ZlsVisl6f+aidYok5Wgz1EXkSSumAZ9ZCsCotmg2podOAjp9M2lGAjUJ8cUy39OBhFw+HpHdkOtzjlC55Iynlc+aK3KdfxoXMNK80uv8u7LagVptIGt2KEYwTATTGi+M6Kwrhfnh7lzRQpIscrNz0O41rrAluc29zk9ModRISgaQuS+rmHXKOf+Eli366NUwMVsVrhMPLXv2/7ZuDyP8jevOv/aVwaoBJWVlOFYzRzisc2Ade25gUb1npoWcdsHzS6HPz0i3QxmQz25SpX6bM5BklzZQt2aDv87FIUq9i1ExSvtr0EtlDfY4FJoYOtXecgvNZujU0pfMbuZTs4eykFfWs9MP1a2h7JldCySDaF/EjwlmpAcjvoZHaZnIIzNtRqC/JUUXRj0F5Rnzbs9m8y7+5WmPM3FnL0Q+R4laqxa5Mv47huaR7Mk7/BOsUy6egpOl5pYyMzlg5irY66PCbDxWcT+3bfh0BM6IWN9ps= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR01MB4285.prod.exchangelabs.com; PTR:; CAT:NONE; SFS:(13230028)(39860400002)(376002)(366004)(346002)(136003)(396003)(451199021)(54906003)(478600001)(2906002)(66946007)(66556008)(66476007)(6916009)(316002)(186003)(6666004)(41300700001)(4326008)(966005)(8936002)(8676002)(5660300002)(26005)(6506007)(6512007)(1076003)(107886003)(2616005)(83380400001)(6486002)(38100700002)(86362001)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LPkfT1CRQWbwOAuZAXxbab5qP0bKitPS5QA6XzAvPDbLU/PlH9yf9uTQCnZ008dSK21aOj1reEXbjBDR75G1FtQkoKN29v/ifq9U8iBIlxNslltEE75DOOtIEXV2MiAb6XKGrEw5vPn/9Px1OJlBGgOAIVgZdYqUcJqCMIWYI0XoxPb+VCksgoASgHMrMMrkA8kxuCv5aSftXrQycL3HOoxCbZ6JrA43wz2o0H0DVpWtxDo+CpVY75KBYbtAnhy2jK+1GFkQ30XAu5UNvgM0PyWpb/hp8InqQsP2PKS0Fio6f9Lk9c5OR6i9X/s6rFFRdWSBCnmAI9oOCPGqOsWICS9LXxcURT90C4ajET4Eqb0srZ/rc0L1AqPCmiy+mI9A8uz1EUGYmT5YI6t0ifPrQ1DbPOccCZaXms79B2yWWhMu7rgMbPxtAUB0KsKLqu8CfCniqmzpDNJ574ALosQwdu4brl7BD8RztfTArnK5kYH24KbqiT/LI2uibdReVF8v2XAA4tmjGfc4pDCcphGj2qbdkKpxv6XKQwFofNvz1QlfmW+Y7DBS1DGx1BowzHQN9va+4fOckDidFZQRrYx1RQXrzFLQtdXr+N9gLftkWX8Pc7cmiWoDxXiGv71fE0JDYcGZvoVTYaBIQRN3hHx39JwdXs/DnjjRKhnwX7rUlRAuZ1dORir1jg68/vGY+dWoZRczxVnjWx6juhAXaSMkU1D9PFKnzreQT7CJqKi9l+DuHTPfmsBuoLknMrRNz/yMw0tR6hwC8jA5pYP50g6ewM3BS8t8bjv3vqBtV9TL5CbtYQb4veeQCJXkEDujR8+aGYfsv/dnYdcfq1gHlcpgLFG3nDo+3zxSd0GgHthuor/oSCoSsQOikZLnAKVsw/JKR3l10mvbEEGaxDYUr1h2LQo/5+Yh30jwvZAp56GaOfDDQ992GwJAukZr+XjTa5+CL0fKvT1NIXSPOjs6tRg4CszCFTMTgASFs2j8LiZcp4RimGOxHxAJK0aqRw5AZaqRmWdH1SGZlqLaQOHJ5vtLtNdkvXJQVzpG4QvTh8mXufD9Pz+w7GdWDEf4/KSOyV8m2wy6bmf5Loxt83sf9tx/EnrfLqy0YsSN7dYj28u8p8po180ptVorWIPiOvpsv5GUWC0bEV+hVygO2sOzvL5OFo6EOSADhaIuJDSmd8R5w2oOutS7QEXzOoVGZ6nBg7ajUafMldKRLIgMEhcvHIDEkticEhpZ+no/BkyE/o9wgG5lRyf7EFmY8BhXOGp/rC2z5iB+pN8YqTiGDRyPdF+b8pwyNK0oLm9S/44PSJFjNlGR97McCgNIdfJTI00zUmPcRcoXhcPU9PMa8sbYZspKCT5E8mFXtX7Tnq7g/KVBmPtbeviPeoDYKmfgExMhzI04S8h9FL9G6fSDeFcDMaOTuj7dPqyBsNvU6kZoz/PnJsODbochV1/V9W0jlIkSMDLzVIoWz9tvxfk1Ctan+FurIhTBTb1/EcqJst8xnvytgNmfh/KXhGxZclyyANJt/BgvtNtyXX9qTYNUs4Hlj3POXZPVr7QFWg/sguj+4+lap3bF2zxThKjmTQ8dzwVzVl1a X-OriginatorOrg: roku.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe143c97-e4b1-4b23-73dc-08db52b6d873 X-MS-Exchange-CrossTenant-AuthSource: SN6PR01MB4285.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2023 07:02:27.2704 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 00fc7e42-ad65-4c4c-ab54-848ba124a5b7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: eOuWYz75SMh0f8yisT+LvFCa+shsgPDIPBYrDSv7qW5JcBpuFFPFxYCgI59yOUrF4Acjg0svVZGj1dGR2ORUSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR01MB4295 X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, 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: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Luke Diamand via Elfutils-devel From: Luke Diamand Reply-To: Luke Diamand Errors-To: elfutils-devel-bounces+patchwork=sourceware.org@sourceware.org Sender: "Elfutils-devel" Looking at some cores in eu-stack, I found that they were not being backtraced. This was because elfutils had not found some modules (e.g. libc-2.22.so) in report_r_debug. That is because it has a limit on the number of link map entries it will look at, to avoid loops in corrupted core files. The example I found had: - 36 elements - 109 iterations I have increased the limit, and this seems to solve the problem. Florian Weimer suggested that the problem is caused by use of `-z separate-code' although I have not yet managed to confirm this. See also: https://sourceware.org/pipermail/elfutils-devel/2023q2/006149.html Signed-off-by: Luke Diamand --- libdwfl/link_map.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libdwfl/link_map.c b/libdwfl/link_map.c index 06d85eb6..975910a9 100644 --- a/libdwfl/link_map.c +++ b/libdwfl/link_map.c @@ -330,12 +330,13 @@ report_r_debug (uint_fast8_t elfclass, uint_fast8_t elfdata, Dwfl_Module **lastmodp = &dwfl->modulelist; int result = 0; - /* There can't be more elements in the link_map list than there are - segments. DWFL->lookup_elts is probably twice that number, so it - is certainly above the upper bound. If we iterate too many times, - there must be a loop in the pointers due to link_map clobberation. */ + /* Keep an upper bound on the number of iterations - if we iterate + * too many times, there must be a loop in the pointers due to link_map + * clobberation. + */ size_t iterations = 0; - while (next != 0 && ++iterations < dwfl->lookup_elts) + + while (next != 0 && ++iterations < dwfl->lookup_elts * 5) { if (read_addrs (&memory_closure, elfclass, elfdata, &buffer, &buffer_available, next, &read_vaddr,