From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 0B659385843E for ; Sat, 13 May 2023 17:29:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0B659385843E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34DFdaSh027929 for ; Sat, 13 May 2023 17:29:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=FwgbAiroe/DEvDvKsmmCy3iFIlUMvuZ0TgbIwPUudjE=; b=cTAIrPD5JxU5ssVa4pA8ph+TOGP6LCJdSc/Tdvtkb1Sv+7zRl6GZqgbQnmNYcpBo4UTa x+1393mXo/DgoCS9Yvn2imidM4Th/OkGR+LT4lqnZ99eJ/HvpVLRjiwWliwWWm34VnWN rx/ab8lkY1v7P6uwGuTMg2d5+h+bJJ/8gJ+c33H7cMeHj4o2rXLuhn+aFQepZzIlf4mZ Ww8xjiqT82c1TmnMI7H7BDgxGviTqUE/lf12IlvpbxHtZf7uZbtNwCu8beeRYBVKNk1C DbbJDsWjH0TjSdlSAz0/m1TjmnPBoNWamX9TUdI2FOjLBTz4ucAyonzG8cAP2DjWelfE 1A== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3qj33uj50x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sat, 13 May 2023 17:29:51 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 34DEiPcD039838 for ; Sat, 13 May 2023 17:29:51 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2168.outbound.protection.outlook.com [104.47.58.168]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3qj1011tw7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sat, 13 May 2023 17:29:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CBvyoxGAwq1AVDjNMnfKf6yU3ShSP6GvJbNvMlgz8zDcKWr0LfZjsf4I9GPUgaZGaFjQLG3/CdwKX81DnC7cCNrJSsOi0HeVWnqAQnj5qTqStseil5NAy3P0tQ+z87HGtmVA+Go3VlcYFIyE+NL0gS7bPvtDoqXkHmnpKin9sGSGT5WUlkFsWi/V4yILHRwkf2DoIykgynebEXpnyvCRt3Q4dYlsV1GmSLPBx+311QlDOWkCEQ18dvTktGzZhhIsrXXRWUdyMyYMwT0WOTf3D6M7MkQX5ngLRkFXoiRFGfha2HdURdsUcCeIe01lVS7VWun2jRi6HVBFydwEDuOVrA== 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=FwgbAiroe/DEvDvKsmmCy3iFIlUMvuZ0TgbIwPUudjE=; b=mv1Wxtz3I4ulwUPhugfm3RoF9MPx5QazfGi3mcCnMfaqflVlitcdp72+RG69venuMJqscPLhQFutUMT9xGhBKDcQSidPctQca7JIkWW1RzwQMShD6fHFWJ+MgpJvgpM1hCtazUY2eXAoZyanzA/q0Kta5/nWlRT6k4WYei7FLY8yOPrgIie1VkOImKRKANQP1cMdhvUB44JPR1Ps9HAWxF1jrGlx09xIWmarS9meIRYmy42shQFwzzlRpWw11/cDMVn9s71pJ0NBn3QIMhC95U0hQkUxUGChGVmqKuGwiRRZD7OSc6INDJRhHFthCzK//rMoZO2MFpoYD6TT629PiA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FwgbAiroe/DEvDvKsmmCy3iFIlUMvuZ0TgbIwPUudjE=; b=ColQsSRmeZNFq1Qg/hTmRclQ7Bcb1mi8UDv7QLCf8TkAjMVCLOLqR0KDqLJeXIqFUfK9EuRdzSC1hQ/U88IXFGUhZEG1OkP+vUqlpbF8wUS+/reVLA0GFtbRXjMWiRSlhzvTvq0AO8aXEPPDHTSCivi8h5Wij4vg/1vXaMn6XYk= Received: from SA2PR10MB4636.namprd10.prod.outlook.com (2603:10b6:806:11e::10) by IA1PR10MB5899.namprd10.prod.outlook.com (2603:10b6:208:3d5::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.22; Sat, 13 May 2023 17:29:48 +0000 Received: from SA2PR10MB4636.namprd10.prod.outlook.com ([fe80::d045:6fb:e0f4:631b]) by SA2PR10MB4636.namprd10.prod.outlook.com ([fe80::d045:6fb:e0f4:631b%3]) with mapi id 15.20.6387.027; Sat, 13 May 2023 17:29:48 +0000 From: vladimir.mezentsev@oracle.com To: binutils@sourceware.org Cc: Vladimir Mezentsev Subject: [Review is neded] gprofng: include a new function in the right place Date: Sat, 13 May 2023 10:29:38 -0700 Message-Id: <20230513172938.2831329-1-vladimir.mezentsev@oracle.com> X-Mailer: git-send-email 2.31.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: LO0P123CA0008.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:354::7) To SA2PR10MB4636.namprd10.prod.outlook.com (2603:10b6:806:11e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR10MB4636:EE_|IA1PR10MB5899:EE_ X-MS-Office365-Filtering-Correlation-Id: cc05a68b-d75d-446a-a4ec-08db53d7a67b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: H+OQmmmU3WrL9rj8SX+9+NGlu2KxI1WURTWzF/8BxA5Z36LFi+BF6dYA0ui3wPYEX9Dj96p1U5W8o8f9tnTY5FEdRF2WTO5vWmxfwdxC3Oz9wPG11xmwM9sYrB2LOaKMPoP8i1Z3vFmh+ow7bN0zwCkS6D5fb0jHBcK+fG7/9dMNUjXT25y85LUTwjQv+qB02EXysR6rWrT3S8njZUnf1bo28SjbgLYdcITyOgYSk86Q3XFJJDBV+GS/ZBqPPD0G9/UBE2usjFxJxtxdhYo7M6kVM6PqyuWc+n8+SBOAvmwpPZvskAnmmz4kKCyygkpeVGAwSaHWpGo04F8jKgiTt1Javd9QPA8VApod7w8h/dnDV6ZJ73YyUDOE/ooOPlDvOpoegNFoOF+0m3N/vLvzsOyi7gNYLydee5RvwvIZVENvTIjwqxZ7rV5iL3ZVpfp57AiFxwnJMAfTHFrNI9CgS2Fj48/XgMbHjcZj/YxQpYvmWI13THOUoybX+V9VNvZHisVzRNbFpue8FF+9E0xW95mRY1DiON/FSPqCSor7lVhybTLwRo6lQxyzItBMlPx4 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4636.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(376002)(396003)(136003)(451199021)(8936002)(478600001)(5660300002)(36756003)(86362001)(8676002)(2906002)(66946007)(6916009)(66556008)(66476007)(4326008)(316002)(38100700002)(41300700001)(107886003)(186003)(6666004)(6486002)(6512007)(2616005)(9686003)(6506007)(1076003)(83380400001)(26005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FrxqAGRZ3pzAwbE75mCt4zTernu4Xzv8mPiLzvWVFQFo3noArLcbdMBhSBjR?= =?us-ascii?Q?vmYPAAmHZhp7ThP+ji7aw3QytxbIzYuWpP6xg8p6JUFfXu7I/bqd1DU+i4ZW?= =?us-ascii?Q?XkZtZ5CmEzsrr8YkYLTo07EYCObuxFUtVVr7ub6k0BgdUd3KgnCTP4OgiIwb?= =?us-ascii?Q?1LTG/ednggGghvPcms4WIwpIB5ukMiul2kUG4sPlNiYhuRErtAHHeHFxcWAz?= =?us-ascii?Q?cqA7mU+XF7ZMIaQX9YsnuTukevS/gCD+HKfQTOLiWLryQ4m95RrwskfnwQca?= =?us-ascii?Q?1ETNzNhX9Ro0MuN3bK+KwwsOhsKoOce1ou/1vDGv0uHzsAen9ePcMar5T7MG?= =?us-ascii?Q?i0osAXYs4h6endZ9CYWD7g0d5AjbAeiZlMEJNoYKu45Y1ipGm+C2UsuG89gq?= =?us-ascii?Q?uNDT7v0z8CMKx7jHPzYhjXglXfvrPEllpSePI8DP1tx5c6Q61p7n6X4UsDCB?= =?us-ascii?Q?BX96m4YffiHFc1dHOWPwE/BJwrIK9JgQtftYL9+4K2ntaAQFdvHMOKZALeAx?= =?us-ascii?Q?jFKZ8OGSbbl+333uIJLdYrjaZ3jRRhT+5ivCVr+eZNTbEyfs3+4Njp6PYj4g?= =?us-ascii?Q?eobEsLs94fV3VYaKqCXVW7+uRmQV0T8XdwFtTLuxg7nW5LUMb5kFdWsaAH7w?= =?us-ascii?Q?UOLJmBp9VWz6TIoGSZkAnrnb5s1qfL3okL52lt+gbyEG2O5Ym814Ku9ruI9o?= =?us-ascii?Q?ZYTUNmFiDEjU4IHsO+oIE9HAN1JwfjiiPL+pMh5E07RmPGzQ9di74wYk4XrM?= =?us-ascii?Q?PNgsO5wNu22GW3w+cYtkMjKG5v7X4sktvTBi6reL/bXU0Q5xZjz6qlwP0LD/?= =?us-ascii?Q?0n8fg/S0Ju853yYtJca+WEKbObtsoJRzii4dASEilD3bSzlLpkOj7TbByZ8b?= =?us-ascii?Q?jCZTjtSaXTf5zJuHNT707VuPKXzk3TcUOv1tvmKgszG33tdd3x3HKEknhI0U?= =?us-ascii?Q?MJiDkcFG3Wn55Vid6N8HTLT/s325CmWwuHdATQMkwf5X36D7epkDVlrVytHb?= =?us-ascii?Q?DK6L47h90ksBtXDsqhCqBl0MnKK+EFeCoHKkokgHZGbp2tDg5mQIex/LcLJZ?= =?us-ascii?Q?E8BO7CYHN4TtHPhThrPNIpIev7KGbzzE3P1KQXdEYJs0n96Zbhi6C05j4KN6?= =?us-ascii?Q?gBRVkSyCQ7SnhvW6O+Zs8B1ndub1u5mopVuZ+TLwARYjgl3YEPtyOUw02yjs?= =?us-ascii?Q?qrJCh1fZz9BAtN/FqlCl5lchrlPMLM1PpuD7CXKg56c2olDQaOMm6E64llBy?= =?us-ascii?Q?JhAa2MxJ4M7ESYjaoMPDpFWeEhwd2838Pwbhfo2JrtIVEU7YuvonmEjA2ZAZ?= =?us-ascii?Q?NVz98uQLlUjwyCbHuN7njLA8fct5ayMx+/Ty5G1gEbE7ugGWc5AH/uXSKqzH?= =?us-ascii?Q?wln84lwd6390m6WKAClpMXyMr0Dw90psGUi5Ljp8NQw7cbHOXCbfLbIh3DQ6?= =?us-ascii?Q?A5URIYyKTHSfyzMlaWJ0WIg9blVlkgCtOvLXt5VS3ffqi/2s+Wj8mzi0Yzpa?= =?us-ascii?Q?et31AnH4XGVKfdzNPz8BXoZ86+9CVmmiJIJs5BIW2tt/gfmCY9oC2hSwEyKF?= =?us-ascii?Q?b0EVhb7ops0zs4pHpqiJ0qfhHraSg4TlPiNyOUPiwybQ0RcOB+L6YqSI5oQc?= =?us-ascii?Q?YA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: aRC1LGXsV4zgeYYwzKG/MYbjgEyj+VnQyFDS6gn15UCVIfBW5gW2t5zIfkFQNUCKDcKuCXql0+sPUHiT514qnG6bJGt0FJncw6q/voIdANxyJDcg7OPagAN9FoxS0ywO5orww2Uxr+6aO+yVgxXgi29klNox//zRKGAM6xjJu7n4qp4colGthadJuGk5IzHKdfLdVFRrnX9TxIAPTnsP3rvj7hYCyWMZTk2Ldy7bi0/iWnuDXa68t25rSh8IqtE978rhlue6cieuyMJ4vTmHlWky6VfQSw1i0zbD36msiUqlocIWJVdvMCHbOdYqUYUw/DgofrHZEcm6wyf3+tZprNN80SdwQb6ad2wwRo4OUgq5bJ0IK8plvmOQo8QbcjXmRmCtTKOFzOlAuTf1qq/En7U6qwrln6QsvcEfOCgKhC8IOBQuX1UiaepEmYATizdLa1FmDYfGRskNDZKGTvtsm7yXc3+b2EkeUt/k8d+d02hjlEL5VxPd9eAV0/hxnjKuUho8KAk9WT0yif8Ie11cExm4e78qTnb5w9OHp7LkwFuZza2ceMH+BEI/w4HIzl6UkCVnjRTEOHjHyPt5DPFMKcKtkhxSMpnGU7QYyMEeMlQ36f0hdM/NC5PFIks/qSgxNhlr5zu2sJMqB/oIkqWrLZcORuQaGwcdlnJWYg0xhmFpeX7A3NaObXDgqxuIZVCmDyE0tD55sW8AaBetRL+DTgghV3HTzf0j+WKX9CipJTVEJe49uC/D3zEy7ANDGvag X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc05a68b-d75d-446a-a4ec-08db53d7a67b X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4636.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2023 17:29:48.2705 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: msnSIYDhwJup2y24lGhVetZCYL71twNaIAQc20EtHD0eK7fw72iwQxqujGMWTSwFRMlFRd44bDvDv5vt5ClWkYsooQsAiWhFHtDWYy/6a/8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB5899 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-13_12,2023-05-05_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 phishscore=0 mlxlogscore=938 spamscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305130164 X-Proofpoint-GUID: AH-KfAC90nlbdEuVOGR8ijwhUVsqjLrW X-Proofpoint-ORIG-GUID: AH-KfAC90nlbdEuVOGR8ijwhUVsqjLrW X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,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: From: Vladimir Mezentsev If there are no rejections, on Tuestday I will apply my fixes. It is tested on x86_64 and aarch64. Static function name is not available in stripped libraries. In this case, gprofng maps PC to a fake function like @0xPC (). Sometimes gprofng creates two functions instead of one. Also FUNC_FLAG_SIMULATED is needed for these fake functions. gprofng/ChangeLog 2023-05-11 Vladimir Mezentsev * src/LoadObject.cc (LoadObject::find_function): Set FUNC_FLAG_SIMULATED. Include a new function in the right place. --- gprofng/src/LoadObject.cc | 63 +++++++++++---------------------------- 1 file changed, 18 insertions(+), 45 deletions(-) diff --git a/gprofng/src/LoadObject.cc b/gprofng/src/LoadObject.cc index f57db6001a9..9601dee7bd9 100644 --- a/gprofng/src/LoadObject.cc +++ b/gprofng/src/LoadObject.cc @@ -445,59 +445,31 @@ LoadObject::find_function (uint64_t foff) if (func == NULL) { int last = functions->size () - 1; - uint64_t usize = (uint64_t) size; - if (foff >= usize) + uint64_t usize = size < 0 ? 0 : (uint64_t) size; + if (last < 0) + high_bound = foff >= usize ? foff : usize; + else if (left == 0) + high_bound = functions->fetch (left)->img_offset; + else if (left < last) { - // Cannot map to this LoadObject. Probably LoadObject was changed. - if (last >= 0 && functions->fetch (last)->img_offset == usize) - { - // Function is already created - func = functions->fetch (last); - if (func->size < 0 || (uint64_t) func->size < foff - usize) - func->size = foff - usize; - } - else - { - low_bound = size; - high_bound = foff; - func_name = dbe_sprintf (GTXT ("@0x%llx (%s) -- no functions found"), - low_bound, name); - } - } - else if (last < 0) - { - low_bound = 0; - high_bound = size; - func_name = dbe_sprintf (GTXT ("@0x%llx (%s) -- no functions found"), - low_bound, name); - } - else if (foff < functions->fetch (0)->img_offset) - { - low_bound = 0; - high_bound = functions->fetch (0)->img_offset; + Function *fp = functions->fetch (left - 1); + low_bound = fp->img_offset + fp->size; + high_bound = functions->fetch (left)->img_offset; } else { Function *fp = functions->fetch (last); - if (foff >= fp->img_offset + fp->size) + if (fp->flags & FUNC_FLAG_SIMULATED) { - low_bound = fp->img_offset + fp->size; - high_bound = size; + // Function is already created + func = fp; + if (func->size < foff - func->img_offset) + func->size = foff - func->img_offset; } else { - fp = functions->fetch (left); - if (foff >= fp->img_offset + fp->size) - { - low_bound = fp->img_offset + fp->size; - high_bound = functions->fetch (left + 1)->img_offset; - } - else - { - Function *fp1 = functions->fetch (left - 1); - low_bound = fp1->img_offset + fp1->size; - high_bound = fp->img_offset; - } + low_bound = fp->img_offset + fp->size; + high_bound = foff > usize ? foff : usize; } } } @@ -505,6 +477,7 @@ LoadObject::find_function (uint64_t foff) if (func == NULL) { func = dbeSession->createFunction (); + func->flags |= FUNC_FLAG_SIMULATED; func->size = (unsigned) (high_bound - low_bound); func->module = noname; func->img_fname = get_pathname (); @@ -512,7 +485,7 @@ LoadObject::find_function (uint64_t foff) noname->functions->append (func); // unordered if (func_name == NULL) func_name = dbe_sprintf (GTXT ("@0x%llx (%s)"), low_bound, - name); + name); func->set_name (func_name); free (func_name); -- 2.31.1