From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id D86E23858D3C for ; Sun, 5 Nov 2023 03:59:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D86E23858D3C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D86E23858D3C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699156794; cv=none; b=cDLufVhPKcNsITCoulUOAz8Txya6YxV6R3Noi/60FMLjv0Dn/Ds8vqY5DEl5Hk4+NCD/F0yR8e0J+TyUbEz2wH6AJ5gP8s05xmGR1xg1REiq4Du3wOP8tP+JctkP5RZTyCk5CNYafUx5tZXAQvuta3SbdKb3ct2YleuTwsMiRd8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699156794; c=relaxed/simple; bh=7ws4x92qVnEmai1acS7NbeVo4Kc6/uT5u2l1FYeYeM8=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=H8UiAND3RrP2JRe09Y1eZQA7s3lRl855gvO1phUeb/Bw55h5a+qphgWVCRHh4llBol0NYUyDwGUVDzvzZUd7dBGT+KvQxDBdOm9by2NdxTnX3jZJ6HYlTLCYZ1t75s/FvUzGW3eCE+P/o91r9+/yLZnxVdXznjLsu/q4VPyjmNE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699156792; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=y1m6rXBjXdE/vGoYzS5wE7Zfacs0dWGQFHaI5NajX34=; b=EEeBZ4vE8qVtVNj5pjgOI2ooCiMdgsoiK0qW88e66bYDzJcPlqJa60rvlxhkSSG2QCOb21 HcaIi8eSNlbza9WmsD5hu13T9QN6M3FN1QgAhcTNZ8BegxeLjB4DMlohyDbYb5HhhZVyci xhivG4FX8VLpUWdWh0FFTsAbDjV8zAY= Received: from mail-lf1-f71.google.com (mail-lf1-f71.google.com [209.85.167.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-457-6H0VbcztMU6QlALvHESBhQ-1; Sat, 04 Nov 2023 23:59:49 -0400 X-MC-Unique: 6H0VbcztMU6QlALvHESBhQ-1 Received: by mail-lf1-f71.google.com with SMTP id 2adb3069b0e04-507f20a111fso2506913e87.0 for ; Sat, 04 Nov 2023 20:59:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699156788; x=1699761588; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=uc68myNJcTzeVrBSUNiPCzM+4ii4it/iEcfvb3pMK4A=; b=vxbaeZaofpF2zemfuYGA8r4NdaMqZq1vwMSlmhQAj14yw5Qq2WLQyrrgEJ3wy1KkD7 gwTUmOGSBA08L5ddPOtTeRHUD49PBSelpUZ/jQhx3JJjf4Xa+fDiVHZD1rJ4jmPd0gFS lw9TKqqI7tHBJdL4EzYMbWql5N+YDthUzRTo6rgdllcNlWtA7fyz5l+3C00IG3TfXgxA 1s/sOF8kzHoG8gUER/2g63zWKl1LvtW0+dQd8lsqgWg+Hch2Hf1FLl7BBV9ReRAepeee OcQkPQLY5erQug15ymBY0ROklfD64xRfXtfAr/85zZIx7w4aMY8XngmilT4M/Djvf0hj Ru3g== X-Gm-Message-State: AOJu0YzOMDOxhkWR0ImHKTFUlOE3Ut/6uiD5NHEB6xeOGx+oOMemGiAb cxYCkH/RocymoR4pnGUgYHJLaweODczwcgC76EhokwNt7OkVWCBzhVlpXC1CGvMykzmDqIX7pCE nMnN/R8x+TRrbu7yRi0NriSFWISTdh54KkXbbZRixEMYiYKkf X-Received: by 2002:a05:6512:1593:b0:509:5229:93d4 with SMTP id bp19-20020a056512159300b00509522993d4mr2753143lfb.10.1699156787949; Sat, 04 Nov 2023 20:59:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGqYJ/7h4sC/+QhgjuIllwyAz/6OuEXxM+03bWT9EmZ3fwc5YREDh+KulCBAJfUgnXr4coQB7BBcIU07dBkTqo= X-Received: by 2002:a05:6512:1593:b0:509:5229:93d4 with SMTP id bp19-20020a056512159300b00509522993d4mr2753138lfb.10.1699156787385; Sat, 04 Nov 2023 20:59:47 -0700 (PDT) MIME-Version: 1.0 From: Di Chen Date: Sun, 5 Nov 2023 11:59:36 +0800 Message-ID: Subject: [PATCH] PR29997: Fix the symbol aliases search failure when symbol version is missing To: systemtap@sourceware.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000bb605d06095fc430" X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,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 List-Id: --000000000000bb605d06095fc430 Content-Type: multipart/alternative; boundary="000000000000bb605a06095fc42e" --000000000000bb605a06095fc42e Content-Type: text/plain; charset="UTF-8" >From 9273dc95658b109f048e4ec9b0fcde96e34f3419 Mon Sep 17 00:00:00 2001 From: Di Chen Date: Sun, 5 Nov 2023 11:23:50 +0800 Subject: [PATCH] PR29997: Fix the symbol aliases search failure when symbol version is missing After calling module_info::update_symtab, function aliases will be populated. Then the updated symtab will be used for symbol searching. For the _IO_new_fopen familty with the aliases: $ eu-readelf -s /lib64/libc.so.6 | grep 0000000000077440 247: 0000000000077440 14 FUNC WEAK DEFAULT 16 fopen64@ @GLIBC_2.2.5 1014: 0000000000077440 14 FUNC GLOBAL DEFAULT 16 fopen@ @GLIBC_2.2.5 1028: 0000000000077440 14 FUNC GLOBAL DEFAULT 16 _IO_fopen@ @GLIBC_2.2.5 1556: 0000000000077440 14 FUNC LOCAL DEFAULT 16 _IO_fopen64 3471: 0000000000077440 14 FUNC LOCAL DEFAULT 16 __new_fopen 4765: 0000000000077440 14 FUNC LOCAL DEFAULT 16 _IO_new_fopen 5110: 0000000000077440 14 FUNC WEAK DEFAULT 16 fopen64 7198: 0000000000077440 14 FUNC GLOBAL DEFAULT 16 fopen@ @GLIBC_2.2.5 7433: 0000000000077440 14 FUNC GLOBAL DEFAULT 16 _IO_fopen@ @GLIBC_2.2.5 a) fopen@@GLIBC_2.2.5 exists in the updated symtab b) fopen does not exist in the updated symtab This PR is to add a version info padding when symbol cannot be found in the updated symtab. Signed-off-by: Di Chen --- dwflpp.cxx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/dwflpp.cxx b/dwflpp.cxx index a4f66440f..22e1479c9 100644 --- a/dwflpp.cxx +++ b/dwflpp.cxx @@ -1052,6 +1052,15 @@ dwflpp::iterate_over_functions(int (*callback)(Dwarf_Die*, void*), } auto range = v->equal_range(function); + // version info padding if the symbol is not found + if (range.first == range.second) + { + std::string function_with_ver = function + "@"; + for (auto it = v->begin(); it != v->end(); ++it) + if (it->first.find(function_with_ver) == 0) + function_with_ver = it->first; + range = v->equal_range(function_with_ver); + } if (range.first != range.second) { for (auto it = range.first; it != range.second; ++it) @@ -1138,6 +1147,15 @@ dwflpp::iterate_single_function(int (*callback)(Dwarf_Die*, void*), } auto range = v->equal_range(function); + // version info padding if the symbol is not found + if (range.first == range.second) + { + std::string function_with_ver = function + "@"; + for (auto it = v->begin(); it != v->end(); ++it) + if (it->first.find(function_with_ver) == 0) + function_with_ver = it->first; + range = v->equal_range(function_with_ver); + } if (range.first != range.second) { for (auto it = range.first; it != range.second; ++it) -- 2.41.0 --000000000000bb605a06095fc42e-- --000000000000bb605d06095fc430 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-PR29997-Fix-the-symbol-aliases-search-failure-when-s.patch" Content-Disposition: attachment; filename="0001-PR29997-Fix-the-symbol-aliases-search-failure-when-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_loky21ua0 RnJvbSA5MjczZGM5NTY1OGIxMDlmMDQ4ZTRlYzliMGZjZGU5NmUzNGYzNDE5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEaSBDaGVuIDxkaWNo ZW5AcmVkaGF0LmNvbT4KRGF0ZTogU3VuLCA1IE5vdiAyMDIzIDExOjIzOjUw ICswODAwClN1YmplY3Q6IFtQQVRDSF0gUFIyOTk5NzogRml4IHRoZSBzeW1i b2wgYWxpYXNlcyBzZWFyY2ggZmFpbHVyZSB3aGVuIHN5bWJvbAogdmVyc2lv biBpcyBtaXNzaW5nCgpBZnRlciBjYWxsaW5nIG1vZHVsZV9pbmZvOjp1cGRh dGVfc3ltdGFiLCBmdW5jdGlvbiBhbGlhc2VzIHdpbGwgYmUKcG9wdWxhdGVk LiBUaGVuIHRoZSB1cGRhdGVkIHN5bXRhYiB3aWxsIGJlIHVzZWQgZm9yIHN5 bWJvbCBzZWFyY2hpbmcuCgpGb3IgdGhlIF9JT19uZXdfZm9wZW4gZmFtaWx0 eSB3aXRoIHRoZSBhbGlhc2VzOgoKICAkIGV1LXJlYWRlbGYgLXMgL2xpYjY0 L2xpYmMuc28uNiAgfCBncmVwIDAwMDAwMDAwMDAwNzc0NDAKICAgIDI0Nzog MDAwMDAwMDAwMDA3NzQ0MCAgICAgMTQgRlVOQyAgICBXRUFLICAgREVGQVVM VCAgICAgICAxNiBmb3BlbjY0QEBHTElCQ18yLjIuNQogICAxMDE0OiAwMDAw MDAwMDAwMDc3NDQwICAgICAxNCBGVU5DICAgIEdMT0JBTCBERUZBVUxUICAg ICAgIDE2IGZvcGVuQEBHTElCQ18yLjIuNQogICAxMDI4OiAwMDAwMDAwMDAw MDc3NDQwICAgICAxNCBGVU5DICAgIEdMT0JBTCBERUZBVUxUICAgICAgIDE2 IF9JT19mb3BlbkBAR0xJQkNfMi4yLjUKICAgMTU1NjogMDAwMDAwMDAwMDA3 NzQ0MCAgICAgMTQgRlVOQyAgICBMT0NBTCAgREVGQVVMVCAgICAgICAxNiBf SU9fZm9wZW42NAogICAzNDcxOiAwMDAwMDAwMDAwMDc3NDQwICAgICAxNCBG VU5DICAgIExPQ0FMICBERUZBVUxUICAgICAgIDE2IF9fbmV3X2ZvcGVuCiAg IDQ3NjU6IDAwMDAwMDAwMDAwNzc0NDAgICAgIDE0IEZVTkMgICAgTE9DQUwg IERFRkFVTFQgICAgICAgMTYgX0lPX25ld19mb3BlbgogICA1MTEwOiAwMDAw MDAwMDAwMDc3NDQwICAgICAxNCBGVU5DICAgIFdFQUsgICBERUZBVUxUICAg ICAgIDE2IGZvcGVuNjQKICAgNzE5ODogMDAwMDAwMDAwMDA3NzQ0MCAgICAg MTQgRlVOQyAgICBHTE9CQUwgREVGQVVMVCAgICAgICAxNiBmb3BlbkBAR0xJ QkNfMi4yLjUKICAgNzQzMzogMDAwMDAwMDAwMDA3NzQ0MCAgICAgMTQgRlVO QyAgICBHTE9CQUwgREVGQVVMVCAgICAgICAxNiBfSU9fZm9wZW5AQEdMSUJD XzIuMi41CgogIGEpIGZvcGVuQEBHTElCQ18yLjIuNSBleGlzdHMgaW4gdGhl IHVwZGF0ZWQgc3ltdGFiCiAgYikgZm9wZW4gZG9lcyBub3QgZXhpc3QgaW4g dGhlIHVwZGF0ZWQgc3ltdGFiCgpUaGlzIFBSIGlzIHRvIGFkZCBhIHZlcnNp b24gaW5mbyBwYWRkaW5nIHdoZW4gc3ltYm9sIGNhbm5vdCBiZSBmb3VuZCBp bgp0aGUgdXBkYXRlZCBzeW10YWIuCgpTaWduZWQtb2ZmLWJ5OiBEaSBDaGVu IDxkaWNoZW5AcmVkaGF0LmNvbT4KLS0tCiBkd2ZscHAuY3h4IHwgMTggKysr KysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2R3ZmxwcC5jeHggYi9kd2ZscHAuY3h4Cmlu ZGV4IGE0ZjY2NDQwZi4uMjJlMTQ3OWM5IDEwMDY0NAotLS0gYS9kd2ZscHAu Y3h4CisrKyBiL2R3ZmxwcC5jeHgKQEAgLTEwNTIsNiArMTA1MiwxNSBAQCBk d2ZscHA6Oml0ZXJhdGVfb3Zlcl9mdW5jdGlvbnM8dm9pZD4oaW50ICgqY2Fs bGJhY2spKER3YXJmX0RpZSosIHZvaWQqKSwKICAgICB9CiAKICAgYXV0byBy YW5nZSA9IHYtPmVxdWFsX3JhbmdlKGZ1bmN0aW9uKTsKKyAgLy8gdmVyc2lv biBpbmZvIHBhZGRpbmcgaWYgdGhlIHN5bWJvbCBpcyBub3QgZm91bmQKKyAg aWYgKHJhbmdlLmZpcnN0ID09IHJhbmdlLnNlY29uZCkKKyAgICB7CisgICAg c3RkOjpzdHJpbmcgZnVuY3Rpb25fd2l0aF92ZXIgPSBmdW5jdGlvbiArICJA IjsKKyAgICBmb3IgKGF1dG8gaXQgPSB2LT5iZWdpbigpOyBpdCAhPSB2LT5l bmQoKTsgKytpdCkKKyAgICAgIGlmIChpdC0+Zmlyc3QuZmluZChmdW5jdGlv bl93aXRoX3ZlcikgPT0gMCkKKyAgICAgICAgZnVuY3Rpb25fd2l0aF92ZXIg PSBpdC0+Zmlyc3Q7CisgICAgcmFuZ2UgPSB2LT5lcXVhbF9yYW5nZShmdW5j dGlvbl93aXRoX3Zlcik7CisgICAgfQogICBpZiAocmFuZ2UuZmlyc3QgIT0g cmFuZ2Uuc2Vjb25kKQogICAgIHsKICAgICAgIGZvciAoYXV0byBpdCA9IHJh bmdlLmZpcnN0OyBpdCAhPSByYW5nZS5zZWNvbmQ7ICsraXQpCkBAIC0xMTM4 LDYgKzExNDcsMTUgQEAgZHdmbHBwOjppdGVyYXRlX3NpbmdsZV9mdW5jdGlv bjx2b2lkPihpbnQgKCpjYWxsYmFjaykoRHdhcmZfRGllKiwgdm9pZCopLAog ICAgIH0KIAogICBhdXRvIHJhbmdlID0gdi0+ZXF1YWxfcmFuZ2UoZnVuY3Rp b24pOworICAvLyB2ZXJzaW9uIGluZm8gcGFkZGluZyBpZiB0aGUgc3ltYm9s IGlzIG5vdCBmb3VuZAorICBpZiAocmFuZ2UuZmlyc3QgPT0gcmFuZ2Uuc2Vj b25kKQorICAgIHsKKyAgICBzdGQ6OnN0cmluZyBmdW5jdGlvbl93aXRoX3Zl ciA9IGZ1bmN0aW9uICsgIkAiOworICAgIGZvciAoYXV0byBpdCA9IHYtPmJl Z2luKCk7IGl0ICE9IHYtPmVuZCgpOyArK2l0KQorICAgICAgaWYgKGl0LT5m aXJzdC5maW5kKGZ1bmN0aW9uX3dpdGhfdmVyKSA9PSAwKQorICAgICAgICBm dW5jdGlvbl93aXRoX3ZlciA9IGl0LT5maXJzdDsKKyAgICByYW5nZSA9IHYt PmVxdWFsX3JhbmdlKGZ1bmN0aW9uX3dpdGhfdmVyKTsKKyAgICB9CiAgIGlm IChyYW5nZS5maXJzdCAhPSByYW5nZS5zZWNvbmQpCiAgICAgewogICAgICAg Zm9yIChhdXRvIGl0ID0gcmFuZ2UuZmlyc3Q7IGl0ICE9IHJhbmdlLnNlY29u ZDsgKytpdCkKLS0gCjIuNDEuMAoK --000000000000bb605d06095fc430--