From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id OORuGmlcXGdfeRUAWB0awg (envelope-from ) for ; Fri, 13 Dec 2024 11:10:17 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=N6b/dafX; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 6985C1E097; Fri, 13 Dec 2024 11:10:17 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) 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.0 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 F252B1E091 for ; Fri, 13 Dec 2024 11:10:16 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 80F1A3858C2B for ; Fri, 13 Dec 2024 16:10:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 80F1A3858C2B Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=N6b/dafX Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) by sourceware.org (Postfix) with ESMTPS id 352323857B90 for ; Fri, 13 Dec 2024 15:57:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 352323857B90 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 352323857B90 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::52f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1734105478; cv=none; b=xBX1CrhniW3Ey4L/9hXSn8DPv9wSQCeKcS13x6bBmNI6tGrS4E+Lh/6KxkaSDfLkbh2rjNLgHqV8hvRkkAXYCAP7yuC4kPkBOd0E1kAGB+kDYZB2C9VyTafopymPPj7DlZpfBtqq5TltTLVtpqhX4QVl9Am9VhFQdQ1puMLSS40= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1734105478; c=relaxed/simple; bh=U9MeYWvcG0TzCxNIeFeBoZhVrkcFijtr3NNatBgR9HU=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=WE3ywfNsluhGwsvLK7kY6Kg4k3JUb0hMne25BuX4A+sYIS+l4shJz07IH8UVs2qi0utxlq3ePC7JJSARkGTqTMUnTTja71lmcaYsglkdPJCWEjoQhBUPU29bXO+YOcUosN6GvPwZ+SdWf7CMgpgnlR3ahPT88Xd0Vl9GqMAk+60= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 352323857B90 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-5d3f28881d6so2307848a12.1 for ; Fri, 13 Dec 2024 07:57:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734105477; x=1734710277; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=e7AzaRsSgeBwxlf1oU7NwA6DYJBNyCXq5DgFBcKTlGU=; b=N6b/dafXF0S1vCywOktO58GHqwuxffTz3nnlJF3377OvfVoMEmFucA02+tsu2C4R4j LSNj0ZkdRTbAoUagGDxoU+NKm+R6MwaBdJ7k0u672U8B+8XGLkJfn61N5uptSIb+mkU4 RiU19QkrbzRX/HgCjSVjjSCgvEFJcn5ErdX22KERpcNzUPYYBMU7lg89ZjT28WJt162x jzd+8mxLqGTpiRPNs9kHsvVgOmabiI/mg36WrlIAN9UWig0+MWQe4ohuZn0b507dU/q/ XaiEFKzBXLJxAEN1RYgVEqVi/O8w2LSHeOHVnYl7WrhULVa51Qn8z0Cn6QqmlXbURmY2 7KjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734105477; x=1734710277; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=e7AzaRsSgeBwxlf1oU7NwA6DYJBNyCXq5DgFBcKTlGU=; b=M0UCjt9mpQZhmP61nszbW6I2YZo6KN4NUpNoL1+uV0MWgbid8H5fjMydB88sikHKfl Bh79tmCsTeMl0YY7T/ZsY3SqubwErVlANHwh5FtEJOcbOfPXQVcvvnwx63qb71BbyvV0 MjQx3Eswdg8Z9c0H+J3hacaNmMWjeoAxvfwH0x1PF2pMerd0oSjFnZiN57CVya0dbHgJ Qz66HfX6gdebPVvOEe6Py7uQkYq/BltyQ/gxcJxiKRQJSNKJmlhvFK3xRYiKTR6P+I4m Jm2Icbjl9kN1brQsQr9hDsDUgSmZTdrCOKo7p49XsPK2ePXFh5dV3VzKrRvGrELb1eet qzoQ== X-Gm-Message-State: AOJu0YwkbLOHZvRHOFF5cBcOGCy4ktLsKgVoJK5pzOi38VBmopcax5RO FBvcTDwXfjGSQy4DKXErfpxZCZCMwT9HO2BDSMIGTr9TYGNXS8y+7DhFj75C X-Gm-Gg: ASbGncvduYyF+teKpH4kifQnuuqH7pzWVw5saQEbQd4OEn9K5QRm0+oobiS5uOeYBnj 7RIB/c+eo6wPOGiMbIX2mdbqUoxlo8IoNl9sWa5jOIilS1mhAl1gpHNINIfitWIydSu7BtuNytZ GhauSf0y0lbUBsJ22XRfyuMABGwTRFCkAqJI5hrmRuxYcK9tmzHAEm+WfcMdqYzxs0HDdugw3EN We1R5UZLKewJEpz3J6leoiGVFDgH5QQ/7RwuVyQClHhhGo8FuO+0WZfirkTnIo48SIgem7w X-Google-Smtp-Source: AGHT+IHjgvlCsNWuJiZB0Kz/nLXvVdmGNYgpjcqYjqSW0tQ2CktEAiwI11frwXLgBUwVFjSINB6frg== X-Received: by 2002:a05:6402:3815:b0:5d0:d2ed:ebb with SMTP id 4fb4d7f45d1cf-5d63c300965mr6379588a12.3.1734105476344; Fri, 13 Dec 2024 07:57:56 -0800 (PST) Received: from SYRN16-0224-L.. ([109.245.202.111]) by smtp.googlemail.com with ESMTPSA id 4fb4d7f45d1cf-5d6501d5863sm95355a12.76.2024.12.13.07.57.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Dec 2024 07:57:56 -0800 (PST) From: Milica Matic X-Google-Original-From: Milica Matic To: gdb-patches@sourceware.org Cc: milica.matic@htecgroup.com, simark@simark.ca, cfu@wavecomp.com, aburgess@redhat.com, kevinb@redhat.com, macro@orcam.me.uk, djordje.todorovic@htecgroup.com, Faraz Shahbazker Subject: [PATCH 16/21] Fix addr2line mapping - garbage collected modules Date: Fri, 13 Dec 2024 16:53:23 +0100 Message-Id: <20241213155328.406003-18-milica.matic@htecgroup.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241213155328.406003-1-milica.matic@htecgroup.com> References: <20241213155328.406003-1-milica.matic@htecgroup.com> 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: Faraz Shahbazker Release branch only commit If all the functions in a C module are garbage-collected by the linker, debug_ranges for that module consists of a list of empty ranges. In this case, lookup falls to iterating over the line information without a range match. If there is other valid code at lower addresses (starting at 0x0), the defunct line information of a garbage-collected section will accidentally match against that address, producing incorrect addr2line output. There is no clean way of fixing this, so we hack addr2line to distinguish ranges that were truncated due to garbage-collection from ranges that were not specified to begin with. If all range-information of a compilation unit was truncated, then don't fall through to check line information, but pass over that compilation unit. Cherry-picked 038a17f from https://github.com/MIPS/binutils-gdb Signed-off-by: Faraz Shahbazker Signed-off-by: Milica Matic bfd/ * dwarf2.c (arange) : New field. (arange_add): Set/reset truncated flag for the range. (comp_unit_find_nearest_line): Short-circuit to fail for compilation unit with only truncated ranges. --- bfd/dwarf2.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index ceca4225076..20d0ad933bd 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -342,6 +342,7 @@ struct arange struct arange *next; bfd_vma low; bfd_vma high; + bool truncated; }; /* A minimal decoding of DWARF2 compilation units. We only decode @@ -2319,7 +2320,11 @@ arange_add (struct comp_unit *unit, struct arange *first_arange, /* Ignore empty ranges. */ if (low_pc == high_pc) - return true; + { + if (first_arange->high == 0) + first_arange->truncated = true; + return true; + } if (trie_root != NULL) { @@ -2339,6 +2344,7 @@ arange_add (struct comp_unit *unit, struct arange *first_arange, { first_arange->low = low_pc; first_arange->high = high_pc; + first_arange->truncated = false; return true; } @@ -2367,6 +2373,7 @@ arange_add (struct comp_unit *unit, struct arange *first_arange, return false; arange->low = low_pc; arange->high = high_pc; + arange->truncated = false; arange->next = first_arange->next; first_arange->next = arange; return true; @@ -4733,6 +4740,9 @@ comp_unit_maybe_decode_line_info (struct comp_unit *unit) if (unit->error) return false; + if (unit->arange.truncated) + return false; + if (! unit->line_table) { if (! unit->stmtlist) -- 2.34.1