From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 43908 invoked by alias); 19 Sep 2018 12:12:04 -0000 Mailing-List: contact elfutils-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: elfutils-devel-owner@sourceware.org Received: (qmail 43893 invoked by uid 89); 19 Sep 2018 12:12:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.1 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=sk:infoor, manpages, denote, company X-Spam-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: mail.kdab.com Received: from mail.kdab.com (HELO mail.kdab.com) (176.9.126.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 19 Sep 2018 12:12:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kdab.com; h= content-type:content-type:mime-version:date:date:message-id :subject:subject:from:from; s=dkim; t=1537359117; x=1538223118; bh=6Oa0/o3XavFIA/Z7g5wVB4TIE8Fjpb1i64atC9dYoE4=; b=V5aIcP6bJB+e 54UuSA3Wg2MarhNZ5fmLLL1bGrNnWgVcFySaLdKcJJuR6QKRqWSy/rrF0C7CnEFh /h9fLmahJoPpkIXHYLjrDpKJ5rncGjZc/Nb9h8EacrxcIZWmWyGfSOb0yjvk/j2i zJzhXzE/JF9nsC2QoAcLzLgSEiRBeR8= X-Virus-Scanned: amavisd-new at kdab.com To: elfutils-devel@sourceware.org From: Christoph Sterz Subject: Handling pgoff in perf elf mmap/mmap2 elf info Message-ID: Date: Wed, 19 Sep 2018 12:12:00 -0000 MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms060605020806070408060101" X-IsSubscribed: yes X-SW-Source: 2018-q3/txt/msg00134.txt.bz2 This is a cryptographically signed message in MIME format. --------------ms060605020806070408060101 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Language: en-US Content-length: 2513 Hi, I work on Hotspot[1] an opensource linux perf aggregator and visualizer. For this we use perfparser[2], which in turn uses libdw for unwinding. Recently, we found more and more perf trace-files to use the 'pgoff' field [3]. This happens especially on newer distros, (arch, opensuse tumbleweed). We suspect perf to offset its recording-addresses of mmapped dsos/executables starting with a specific section, such that they denote their pointers with this pg_offset parameter. (e.g. skipping a library's header and setting pgoff to the headersize). Although we are not 100% sure about this information. The Function I am using here is: extern Dwfl_Module *dwfl_report_elf (Dwfl *dwfl, const char *name, =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 const char *file_name, int fd, =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 GElf_Addr base, bool add_p_vaddr); in the specific call I am doing is: =C2=A0Dwfl_Module *ret =3D dwfl_report_elf( =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 m_dwfl, info.originalFileName.constData(), =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 info.localFile.absoluteFilePath().toLocal8Bit().constData(), -1, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 info.addr, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 false); and I am wondering how to include the pgoff here. Simply subtracting it from info.addr results in a lots of "address range overlaps an existing module" errors, where I guess I subtracted too much. I know pgoff is in bytes. Tried adding the offset, also overlap errors. Ignoring the offset results in errors where perfparser fails to find ELF for instruction pointer addresses. I would be happy to hear if anyone has experience unwinding with these offsets. Maybe there is a different function I should use reporting the elf. Maybe even someone unwinded/parsed perf data before. Thanks, Christoph [1] https://github.com/KDAB/hotspot [2] http://code.qt.io/cgit/qt-creator/perfparser.git/ [3] sparse info at http://man7.org/linux/man-pages/man2/perf_event_open.2.html --=20 Christoph Sterz | christoph.sterz@kdab.com | Software Engineer KDAB (Deutschland) GmbH, a KDAB Group company Tel: +49-30-521325470 KDAB - The Qt, C++ and OpenGL Experts --------------ms060605020806070408060101 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature Content-length: 5429 MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG 9w0BBwEAAKCCCyAwggSvMIIDl6ADAgECAhEA4CPLFRKDU4mtYW56VGdrITAN BgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1 c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3Jr MSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTE0MTIy MjAwMDAwMFoXDTIwMDUzMDEwNDgzOFowgZsxCzAJBgNVBAYTAkdCMRswGQYD VQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAY BgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMUEwPwYDVQQDEzhDT01PRE8gU0hB LTI1NiBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBD QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAImxDdp6UxlOcFId vFamBia3uEngludRq/HwWhNJFaO0jBtgvHpRQqd5jKQi3xdhTpHVdiMKFNNK An+2HQmAbqUEPdm6uxb+oYepLkNSQxZ8rzJQyKZPWukI2M+TJZx7iOgwZOak +FaA/SokFDMXmaxE5WmLo0YGS8Iz1OlAnwawsayTQLm1CJM6nCpToxDbPSBh PFUDjtlOdiUCISn6o3xxdk/u4V+B6ftUgNvDezVSt4TeIj0sMC0xf1m9Ujew M2ktQ+v61qXxl3dnUYzZ7ifrvKUHOHaMpKk4/9+M9QOsSb7K93OZOg8yq5yV OhM9DkY6V3RhUL7GQD/L5OKfoiECAwEAAaOCARcwggETMB8GA1UdIwQYMBaA FK29mHo0tCb3+sQmVO8DveAky1QaMB0GA1UdDgQWBBSSYWuC4aKgqk/sZ/HC o/e0gADB7DAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAd BgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwEQYDVR0gBAowCDAGBgRV HSAAMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNv bS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcw JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZI hvcNAQELBQADggEBABsqbqxVwTqriMXY7c1V86prYSvACRAjmQ/FZmpvsfW0 tXdeDwJhAN99Bf4Ss6SAgAD8+x1banICCkG8BbrBWNUmwurVTYT7/oKYz1gb 4yJjnFL4uwU2q31Ypd6rO2Pl2tVz7+zg+3vio//wQiOcyraNTT7kSxgDsqgt 1Ni7QkuQaYUQ26Y3NOh74AEQpZzKOsefT4g0bopl0BqKu6ncyso20fT8wmQp Na/WsadxEdIDQ7GPPprsnjJT9HaSyoY0B7ksyuYcStiZDcGG4pCS+1pCaiMh EOllx/XVu37qjIUgAmLq0ToHLFnFmTPyOInltukWeh95FPZKEBom+nyK+5sw ggZpMIIFUaADAgECAhA3oJduuOypjO3j+nHyt8uMMA0GCSqGSIb3DQEBCwUA MIGbMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy MRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRl ZDFBMD8GA1UEAxM4Q09NT0RPIFNIQS0yNTYgQ2xpZW50IEF1dGhlbnRpY2F0 aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0EwHhcNMTYwNTMwMDAwMDAwWhcNMTkw NTMwMjM1OTU5WjCCAV8xCzAJBgNVBAYTAlNFMQ8wDQYDVQQREwY2ODMgMzEx EjAQBgNVBAgTCVZhZXJtbGFuZDEQMA4GA1UEBxMHSGFnZm9yczEYMBYGA1UE CRMPTm9ycmluZ3MgdmFlZyAyMQ8wDQYDVQQSEwZCb3ggMzAxJjAkBgNVBAoM HUtsYXLDpGx2ZGFsZW5zIERhdGFrb25zdWx0IEFCMR0wGwYDVQQLExRBIEtE QUIgR3JvdXAgQ29tcGFueTFDMEEGA1UECww6SXNzdWVkIHRocm91Z2ggS2xh csOkbHZkYWxlbnMgRGF0YWtvbnN1bHQgQUIgRS1QS0kgTWFuYWdlcjEfMB0G A1UECxMWQ29ycG9yYXRlIFNlY3VyZSBFbWFpbDEYMBYGA1UEAxMPQ2hyaXN0 b3BoIFN0ZXJ6MScwJQYJKoZIhvcNAQkBFhhjaHJpc3RvcGguc3RlcnpAa2Rh Yi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCi08nkYzPH anYteFvbeu2YQY/S+q/rvcMQlB1YspFBiWt1QVHDK+xdA10NZCKgr9D1tK4h aCHFB3pfIC27+cyg54EmmGv38im16Zx/8FLCzNfonSVBtTTwVfN9FJDhEIFp UKChXJpJ6W+9PEcymdwiM9GE7Si/TFNqy7UZrpbSKo4JqfKApsq+vACmbyeL E+dJVrq8uW4Kz38wbGKeTtBQEX6qzImg+KNFW9K8KqO44LFUJBf3huK01XDW l08OM+wG97NMVRUY3MxKQhLtJX+dytJPrvRRSWGmI7CUawjBCkPFWD6OmlOV 94c9ze7n3gxVgP6WMRbseUnpGg+jM/97AgMBAAGjggHgMIIB3DAfBgNVHSME GDAWgBSSYWuC4aKgqk/sZ/HCo/e0gADB7DAdBgNVHQ4EFgQUs3Nx5iKIlMLi OqZqhxAsv1k0LsYwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYD VR0lBBYwFAYIKwYBBQUHAwQGCCsGAQUFBwMCMEYGA1UdIAQ/MD0wOwYMKwYB BAGyMQECAQMFMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9k by5uZXQvQ1BTMF0GA1UdHwRWMFQwUqBQoE6GTGh0dHA6Ly9jcmwuY29tb2Rv Y2EuY29tL0NPTU9ET1NIQTI1NkNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2Vj dXJlRW1haWxDQS5jcmwwgZAGCCsGAQUFBwEBBIGDMIGAMFgGCCsGAQUFBzAC hkxodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9TSEEyNTZDbGllbnRB dXRoZW50aWNhdGlvbmFuZFNlY3VyZUVtYWlsQ0EuY3J0MCQGCCsGAQUFBzAB hhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wIwYDVR0RBBwwGoEYY2hyaXN0 b3BoLnN0ZXJ6QGtkYWIuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQA9YXwNrIuF iomLU5T8fLk7hGEXlJ1RXSSAEcVVrnuchXn/LJkbhOFp59Fs5WnbDi0IQ5f6 UfSkZmckjh02jQDP7rKR9IalWqgNVmOUqcQw1ocK7PdvvnbOmcUdai6hDVjc gG4MycZaBGKksT1gxhhDh3xda1F60Y6UaXZuFZes13ETmPWQNayKpn29dIne bvtkpiNSAx8jqZpOLIYtWTei3reduoVrA6SYwjqmp5XambSyZqNSs+UX+hJq EJNb5pkKAN8cNWRV0/cyuxDO5QmpuM62Zxa92KpeHgAt4R0as/E6t8BAUH20 d/20Hjyqrgm7AxQSVMwkdYrv6tZvSjJWMYIEQTCCBD0CAQEwgbAwgZsxCzAJ BgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNV BAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMUEwPwYD VQQDEzhDT01PRE8gU0hBLTI1NiBDbGllbnQgQXV0aGVudGljYXRpb24gYW5k IFNlY3VyZSBFbWFpbCBDQQIQN6CXbrjsqYzt4/px8rfLjDANBglghkgBZQME AgEFAKCCAmEwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0B CQUxDxcNMTgwOTE5MTIxMTU1WjAvBgkqhkiG9w0BCQQxIgQgXSGR95PvOBBD PQ7ziUNQwhSYGFgkrNO3scMtQmtUpSUwbAYJKoZIhvcNAQkPMV8wXTALBglg hkgBZQMEASowCwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMC AgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDCB wQYJKwYBBAGCNxAEMYGzMIGwMIGbMQswCQYDVQQGEwJHQjEbMBkGA1UECBMS R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQK ExFDT01PRE8gQ0EgTGltaXRlZDFBMD8GA1UEAxM4Q09NT0RPIFNIQS0yNTYg Q2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEDeg l2647KmM7eP6cfK3y4wwgcMGCyqGSIb3DQEJEAILMYGzoIGwMIGbMQswCQYD VQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQH EwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDFBMD8GA1UE AxM4Q09NT0RPIFNIQS0yNTYgQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBT ZWN1cmUgRW1haWwgQ0ECEDegl2647KmM7eP6cfK3y4wwDQYJKoZIhvcNAQEB BQAEggEAUEjJwjicWEI2Ucanf5lMF/9PBdm1NcLmisYKl7LIjhRBVHeVx9lM K+iEJwrt6nXfygXMPvfOQgSRCUYGBRhPcmGEhde2uJZYp/i5EHDfCD4+34+c JStzhdu75hAckx6OPPN9pXEXwsVOPulOi8kh2QpT4IOxnbd2icWq3nl3CIwP DB53FFpY9/+PX/7uH4AShGpAfv5TGk6/ncfNZRdyQ/L+Yn2pg/Vkub9H9k7V /4xP01YoR43KYnE26bM/tG0QFSixZkEdmtPo7pKq63Lti3WpAsAuSW4gSEUb CosjNuIzqOpmuTqsMqW/nN8eaOx3QRN0RTXUQeLWbC93ffmHSgAAAAAAAA== --------------ms060605020806070408060101--