From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 79827 invoked by alias); 9 May 2018 21:27:20 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 79812 invoked by uid 89); 9 May 2018 21:27:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-17.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy=loose, dirty X-HELO: sessmg22.ericsson.net Received: from sessmg22.ericsson.net (HELO sessmg22.ericsson.net) (193.180.251.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 09 May 2018 21:27:18 +0000 Received: from ESESSHC005.ericsson.se (Unknown_Domain [153.88.183.33]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 11.05.22120.2B763FA5; Wed, 9 May 2018 23:27:15 +0200 (CEST) Received: from ESESSMB501.ericsson.se (153.88.183.162) by ESESSHC005.ericsson.se (153.88.183.33) with Microsoft SMTP Server (TLS) id 14.3.382.0; Wed, 9 May 2018 23:27:14 +0200 Received: from ESESBMB503.ericsson.se (153.88.183.170) by ESESSMB501.ericsson.se (153.88.183.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Wed, 9 May 2018 23:27:14 +0200 Received: from NAM01-BN3-obe.outbound.protection.outlook.com (153.88.183.157) by ESESBMB503.ericsson.se (153.88.183.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Wed, 9 May 2018 23:27:13 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.ericsson.se (129.192.64.65) by SN6PR15MB2400.namprd15.prod.outlook.com (2603:10b6:805:24::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Wed, 9 May 2018 21:27:11 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH RFC 0/5] Add a DWARF index cache Date: Wed, 09 May 2018 21:27:00 -0000 Message-ID: <1525901216-15031-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: YQXPR0101CA0064.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c00:14::41) To SN6PR15MB2400.namprd15.prod.outlook.com (2603:10b6:805:24::20) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(2017052603328)(7153060)(7193020);SRVR:SN6PR15MB2400; X-Microsoft-Exchange-Diagnostics: 1;SN6PR15MB2400;3:MfaIrcp3PgmsoFKyleDTHKP2yDrezaRokhhxYz4neME/d64uDv/aHoFq/i/BYEAP5OlSNKn4xS1bvyBHY+4DgJ1iIkco3CaRCr9eCuvdyiW7H3iy+F9iBb2/eHLyWxbxY9Je8nXGyDxxXkKFSwRnMo/+B7dKGPtphc9esuO/e3cvAqntBD43+0V3owYmeHGRHJb+zIrrhj6YWwTCLaqVveMBTieP3lhxDK/cq+UY5PdkhXuiOqYAlcwlxvYNfvGR;25:w8XUhe2IzgxoVi+phOQHf/gfdKtrdCGK5Zi5CKon4VS2ZLrofYXsIJd3DyxsG4CSCzoH3+G1sST8M2oVMp1Mlf2FesgqZNQjtUpuJEc7mwm7GpJ/pb7GaAl93yLw7ST8+fZHhkngziooNtaHKBrpCs3RggacslzvTfBc5giYcFKk3C27Oh+QU6VnFHF1JVsabIfpKJBnNFipmO1bCaMWNmI6dmPKtahOXB3Ir8p8IZOPaurSbMjJVH8NAORC432J+q1qtUQbQ7cP2J84v5oNGRgIEvJFHTt/hHAKAE2fNa0AvmJ/3lKoAAXPnMmhA1Y7o4FBiCZRqW34j36H553ytg==;31:Z71N2VUaVD+M8/y6PvzC43lhhKzuUcbwg4TcjNJZyUy79wwjxkntbedzauxB55LoBG8PbcFje+n2Ucct/r2BcJ0/q8slZoar16JlA0WAwoMcfpRi0nWJ0ImTzaD78/WGu1Zgn88D02a9FuR6B75ulbcPoLZCmRMnUg8wYqHSKsXNrUrjlP09crFGhs7HIdbFaiSeXj/uRWeVFRXmXPByl/p35mvTx2rGP7nbUKkXuyM= X-MS-TrafficTypeDiagnostic: SN6PR15MB2400: X-Microsoft-Exchange-Diagnostics: 1;SN6PR15MB2400;20:YdrNsdJce1rUwS+4TM7y3m9+y8EqeC+FZZI2LBLZBMLzW8+EVZQ2vPQIjKAiOkF/fVztAKOsa7sQbMyEvfFEuFJAG8ine7EQasoT8luYvAh4Pez9yfvtnERkV69bwmeBkQVsCs5pUWHGWiHwlGK44kExFS4HWExBgFDn8yt3ardazdLEQlMSDANc6bk/hbfleVrHUIzuTru768b2xpmXjeMYRcmsdYeL24eb+9UTGUiO50wkf0Cog3NQTcrRgyLErgx8qTOoP7LQGyMrKuvzDV387Pe7Mhvh0BCQZMutrQw0OSp7MxXHEK4FqmYGKNHnfnjmov5pGxk9Yc1gDIEsMIEfSqGBa8RFEJX1a9jBkOXPgkk9rzVliEAf03h4AlnSTtW6xYgJ8Gm+9B+CVS6kxTCOOr9NTrDTzNq5PpsEHS1dreR1SX/4YQelG5h2+bMb+3Ov7SJRcVR+XkZ0keNa6TjoTwDG5sc2lOcAFxRpyBfZGqcxqMtU+c+ahiWe18iE;4:mXKaAhmn7IlE6qIhY5Jp8rGZlFhL7ARlJNoehh7PBSHXSbKQ0m3bz8vwP0ltgvm4blhefgQasYTBcoyajlEAJM0q6Jb0zXjYPTE16DfVffFg8ORl34pielzlzDK2e1BweoITfVL84XEIqoqm8dIRdwYB8pSnOjg7i6pC7ckm+vgZfE4vi2RlA+SflZGe1PZ+ZYJCcUvgOvEaR20PzQQNlqa4sXsZO17IgKel2Dwc9AXA7a2ILDCAVk6EGwV7zuEV8XMHI7k+lie4Q/483StxQw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(93006095)(93001095)(3002001)(10201501046)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(6072148)(201708071742011);SRVR:SN6PR15MB2400;BCL:0;PCL:0;RULEID:;SRVR:SN6PR15MB2400; X-Forefront-PRVS: 0667289FF8 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(346002)(376002)(366004)(396003)(39380400002)(39860400002)(189003)(199004)(16586007)(2361001)(6486002)(316002)(6512007)(16526019)(51416003)(53416004)(26005)(386003)(105586002)(106356001)(53936002)(186003)(52116002)(6506007)(48376002)(68736007)(66066001)(6916009)(6666003)(478600001)(7736002)(2351001)(305945005)(36756003)(47776003)(25786009)(2906002)(50466002)(3846002)(6116002)(50226002)(4326008)(107886003)(5660300001)(81156014)(81166006)(69596002)(476003)(8676002)(44832011)(86362001)(8936002)(956004)(97736004)(486006)(2616005)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR15MB2400;H:elxacz23q12.ericsson.se;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN6PR15MB2400;23:nBK2NpdcEyVaB7wwYIE+SaA/YCGekhMH/g3E8347o?= =?us-ascii?Q?sK9U+lqdkNXl1BeCGcO8vy1vrmOO56+8614rNQ2B6br4eP69DhGSyZJaLEYl?= =?us-ascii?Q?EKVVJm+Fct8f8Rlb/6VaJByRIGJuZMddMjDK+2kFTxLTK+KbkAkumxXR3sji?= =?us-ascii?Q?huCS/1u0eKJK6Yo122Mjma4E+UZ7ODY+ebpyK2pXvs77PS0qD2MGu3Vo+2xx?= =?us-ascii?Q?p6xbMy4FivWR58E+TQbCUlxZDkv9+C23iEoIKQLicdJJyD4zKTjt2tzr9bHA?= =?us-ascii?Q?AigfR4R2tQm7ny55inAOMHhewk12vbcibFEKA46nOU4IM4iGzX1+Eq2TPS43?= =?us-ascii?Q?eJcwc0eqRzZDp4ERLNRltHoBFGR6R8IYe8SjW4ACRCTpW6QvpKPpR6Pb4yEs?= =?us-ascii?Q?O/W1tQo4xSFI0xLtg2sFvbffpSf1hqduh3YyxIHBw2hKJrdpNcfwTDJ8dfYQ?= =?us-ascii?Q?pZKWuvAjro7Ahu3V1xoiJG04yMJok/9cXGZRyvVRojJQKJ7Y5amkuh9+wLE4?= =?us-ascii?Q?rY2Q3o+GOfckRKnkA/zedk28WoeuuMLKjsxhoMWIUH987o5HZnKso7ahDDbs?= =?us-ascii?Q?KEb42ISkE4HNtSCozucwyHjPD4TmzHyhcs4DO366x4txN9KI3/Dx9kozEPzo?= =?us-ascii?Q?eFROR8wqzCr+dOHXq0w0eGY89nwrHSQZ/6EV/8UpIL5lgrohivr1+ApXduzu?= =?us-ascii?Q?l/82AODGJJaBe+AXscIXu8Ss1f0WAq5ibhfuliiFBp0f3+YzKYu0fMbFUvZs?= =?us-ascii?Q?oDUXXAc1gaBRLrqTOQhTnENB5DozsNYE2Mo3MdjblWTYCTbTicw1oRCInzNU?= =?us-ascii?Q?7rEh+oWKjPrGNEmTk+H6YvnACIUbCpvWd/UOF6o2PLhWraON42HB7hPfYYAR?= =?us-ascii?Q?QutFpdyJ20xp0IycSo9DnE1Op1du8KVGDHCj/moSSKZwrbyHb8YgzVs06cMr?= =?us-ascii?Q?uhu8rZnN9fj6/Oru8R/b7ZiiGVwhDsgtily2KBBXG/3TmNDZPkjsFGxlEEaI?= =?us-ascii?Q?ogcYnxbfckKoEnBd3bBUEDJ8ibGAMaJjUUSLzAeKQRWYEfqIA8caQha/DJUw?= =?us-ascii?Q?XjVOrKmOqP1l3ZAPBwU71quJBqROaWScWi6rGI80tRvo6Ja+3pqCT1Pk4jUU?= =?us-ascii?Q?AIVSyvOXTXpLvAhSuBhbk3kqm63f2d0Q3ovW77shnILxBSeRvgyXzmuJkrgj?= =?us-ascii?Q?3e/+cfUuKWuY/vTkT6HTZFJQnswmBvKu/DP/uLoxUDmCkdpVcKuPCVFVV4OD?= =?us-ascii?Q?N3gg6UVpWD4U9m9MUZGAIoUKkHSmxQSHNHf6qMa?= X-Microsoft-Antispam-Message-Info: 2eMYFxqKp6rskzPoFRRdO5kBytkpXolT5GyiMwKJN2RovbB8S0BDRGebyW5LxsPvPT/H55ldnANnmFMRKCn8sMh88xYPGRwiwI9D5UgsdCPiT9UHQ7scBQiiLFEz89vr748m0+ucCBzfPJCvJPgzLfZZwWR5ttrNrx/Ztwe5+2xcRS03Tzi4wRfda5EPQJJE X-Microsoft-Exchange-Diagnostics: 1;SN6PR15MB2400;6:5/xs1vEtpQj+DnwniuSoapRSMZll42JaMKaJISfoZoNrsdaGhqqjcIpVxlPDfOLngGayVZc12WVgoFU8IfKaSJk7/np+ql92eUqbfE/rOuHkXNyeTIcD8ajDlOgKnsSbvoWKa/z8NiHQz7Rd/oBKXtNHVxtq0Bvit3pN+NG9xBh7g/y9GsUkC3iN7yNqix29//4m4EwxrjzIo2Gcqd5caQlSE5X+0tMHiuvWhh3eq+6kS4+c7q8FZL0ppdcFdp20lXQ0OnjMA0qH/RgDn5zl6nX3JLHN/tVV5b4YSDVaUPTZZdCf91sAzBy2txNtw/6/l7A8I76pBgJ0y3lEX4VP1e3s5GtNilm3mkWaLGFsx3B59GF5dZFLmz0eh6pKLqRo1nwCXCyPAiWTascZv0lord7713+NJKsRgE+6nEppR6e8eV6UgSHdFf3IxWHHBLSBTw+qBw2tb9k/oo3AQ/TfzQ==;5:yHqLRCxCvvNK9iWvf3Pl8ukjE2RkqAUWl5zgUme9DnZ9jn703PkLYgwZ0Kw2kaAeG0G4ob8I/2ILwuk8UVSRviUl1BihN+chpEJMBkuoQunV8s3YRdvKwKk8NxtK2/J6Id/DyuAppnRoHFC/+1HXG9gIIEQDnuQDrQDkpY4z2Rc=;24:70P3XBfHe9nViFtuAYgoH5fF5b2W4m++xXzS+8S17QMyGTptxEr9yw8M70A4fPxAQz8XJaQMsaq7d25p9Dgy39vgMfQIJSGFAekPnai85WU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN6PR15MB2400;7:F3iR+Qh5oBypkSKLpEJPfU0lRUTF0MF/OC57+vDI0EPHlQhiWgZhnNzhQxz2Y2/kKAdi6K+NYj4gQ6vU9v+pxUCExPMgjaYV80jMA2BwTjTzBYtVwTjuJOPmxYLrt9QUXLUWlvmZ21fex4NYE/DQ8ejgG9i+kw2kiGvqeFLDh/Nbmt9pxJRIdIqbkWWfotP+t3IyZpy06LI7QT/iyTMBoZdnNwpzAEb6L8mEFZGz/GyvobyWWT0YYRLQPhgVrmbd X-MS-Office365-Filtering-Correlation-Id: e3560d3e-7636-4bdf-4274-08d5b5f3a0ca X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2018 21:27:11.3958 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e3560d3e-7636-4bdf-4274-08d5b5f3a0ca X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR15MB2400 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00216.txt.bz2 I made a quick and dirty prototype a while ago where GDB would automatically save and lookup DWARF index files. A few people told me that it was quite useful, so I'm trying to make it suitable for merging. I'm sending it as an RFC first to get comments on the feature and the approach, and because there are probably a few loose ends. Patches 1-4 are mostly cleanup or preparatory, the final one contains the actual feature. The commit message of that last patch also contains more details. Simon Marchi (5): Rename some functions, index -> gdb_index Remove mapped_index::total_size Make index reading functions more modular Introduce scoped_mmapped_file Add DWARF index cache gdb/Makefile.in | 3 + gdb/build-id.h | 11 + gdb/common/pathstuff.c | 16 + gdb/common/pathstuff.h | 10 + gdb/common/scoped_fd.h | 17 +- gdb/common/scoped_mmapped_file.h | 70 +++++ gdb/dwarf-index-cache.c | 421 ++++++++++++++++++++++++++ gdb/dwarf-index-cache.h | 86 ++++++ gdb/dwarf-index-common.h | 5 + gdb/dwarf-index-write.c | 81 +++-- gdb/dwarf-index-write.h | 34 +++ gdb/dwarf2read.c | 257 +++++++++++----- gdb/dwarf2read.h | 5 + gdb/testsuite/boards/local-board.exp | 1 + gdb/testsuite/gdb.base/index-cache.c | 23 ++ gdb/testsuite/gdb.base/index-cache.exp | 204 +++++++++++++ gdb/testsuite/gdb.base/maint.exp | 23 ++ gdb/testsuite/lib/mi-support.exp | 16 +- gdb/unittests/scoped_mmapped_file-selftests.c | 95 ++++++ 19 files changed, 1270 insertions(+), 108 deletions(-) create mode 100644 gdb/common/scoped_mmapped_file.h create mode 100644 gdb/dwarf-index-cache.c create mode 100644 gdb/dwarf-index-cache.h create mode 100644 gdb/dwarf-index-write.h create mode 100644 gdb/testsuite/gdb.base/index-cache.c create mode 100644 gdb/testsuite/gdb.base/index-cache.exp create mode 100644 gdb/unittests/scoped_mmapped_file-selftests.c -- 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 91025 invoked by alias); 9 May 2018 21:28:56 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 91012 invoked by uid 89); 9 May 2018 21:28:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-16.9 required=5.0 tests=BAYES_00,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3 autolearn=ham version=3.3.2 spammy= X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 09 May 2018 21:28:54 +0000 Received: from ESESSHC015.ericsson.se (Unknown_Domain [153.88.183.63]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id FC.6B.31227.41863FA5; Wed, 9 May 2018 23:28:52 +0200 (CEST) Received: from ESESSMB505.ericsson.se (153.88.183.166) by ESESSHC015.ericsson.se (153.88.183.63) with Microsoft SMTP Server (TLS) id 14.3.382.0; Wed, 9 May 2018 23:28:51 +0200 Received: from ESESSMB505.ericsson.se (153.88.183.166) by ESESSMB505.ericsson.se (153.88.183.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Wed, 9 May 2018 23:28:51 +0200 Received: from NAM01-BN3-obe.outbound.protection.outlook.com (153.88.183.157) by ESESSMB505.ericsson.se (153.88.183.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Wed, 9 May 2018 23:28:51 +0200 Received: from BYAPR15MB2389.namprd15.prod.outlook.com (52.135.198.29) by BYAPR15MB2389.namprd15.prod.outlook.com (52.135.198.29) with ShadowRedundancy id 15.20.735.17; Wed, 9 May 2018 21:28:49 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from SN6PR15MB2400.namprd15.prod.outlook.com (52.135.65.148) by BYAPR15MB2389.namprd15.prod.outlook.com (52.135.198.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.735.17; Wed, 9 May 2018 21:27:12 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH RFC 0/5] Add a DWARF index cache Date: Wed, 09 May 2018 21:57:00 -0000 Message-ID: <1525901216-15031-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(5600026);SRVR:BYAPR15MB2389; X-Microsoft-Exchange-Diagnostics: 1;BYAPR15MB2389;3:JbWjAY8sLFEpn+VZGQwd+d5cKl/9oMxufV+8K+5YVgYm+57735v6wodaQWOAT82yPpI++WWFLdeELVyLGW750XNdefkm+FmOZVwE3y4xIJ4rqO0enB/lgjvBQd86DjYk0SKqhplQ+xohg1gGMKOTI0zww3lKAmFRXpVVuc5UQ6n50OaWnGqFflYKWmGCp3q60DHMQLaaRaUEzoINCOwwGIF2gPqqKWwNfcN6CNYlm43EDv6YuEqHRwHyPDHi5GjD;25:ukA9pbICo3afOZ8a2sftbownfQ6G7+6c2wq1I9tELSa+D0NYKgxBqupaF/kqecSbpSEN6Wur2Oh3vVUG6VPBI58aHkcrijfRpkMTJpnEtiFjNVCVYIcVm+7nAPzdP9hzyzNpgMSmNjfLTlVJEpYU+Sue1wNKCWmB7UW+mYGTn1eU8vXDMRAHLlyu54YwYM/dCx3ynt3lH5AShqoSh4G/fqmIqARhO3Sxs2sVDhzXToIGjqM3mRTCJCOcdsR95Fa4RzVCzg3R42AFhHMi9Slt+Kz0IqYXnb1VMRzkbLVhXApbnvIqI6KRO3VmLhzHNO1rb4PuopQoiElzKmg/x/5cjA==;31:RJWBLopvksjrFVH1LDNvRLWVQo/6DQzFX2pgrFzGwqtRuHtWgcMeuzv1BL+pY/MrYJo11doXXyDrxY3bLAD7FT+RyceuTqUfFVEaEfZpqyUnVmjFNWOnsk/jvQgrE4S78PhwZ+oJe7l/lYSvHrndCC5fftF3K57l8NgLe/v7rFhdrdtzt5tLN11GOW83S8DSlK1gxJ3q2NSwex1ppHsGoRut8sTImusbNu1VebWGJ68= X-MS-TrafficTypeDiagnostic: BYAPR15MB2389: X-Microsoft-Exchange-Diagnostics: 1;BYAPR15MB2389;20:HLBuGdDCPGcuyG2BmzhMy33a719+93PkNfevyGzitFqf8E78/iskoZQGLEJ2eMJ1Dw5yLiZHkyBdK3AmudoH12veniH12YywNXte79/foZozrXeHw8av5J1KZq6bF2Z2qDC4Km6oTjr2IxAzoMjgQ0ll++f60hxwfq7N1rmOVTEPxCq3NRnDRllKs+XIj7mAsezjKfD5qt4sLVkniJgvcmLWE82SJ/45TRAPObT2YAn2+IPUiV3jy7sVQZo4lx01bx3qQXjvw1ua6zRjw0EuJXLAemwudgshevcrec+kt1jlMDQemaCjENqirWTHi4/MDQyRJWeLIovESyZPd5+wMGhBOoXOURv9w2SkV8cxTEY0z7YbsgY256MtrfLAKpJmKd/yy1psJtt8yLkJZWfOnl6JzwRcww2UBtW64zRUHxzuJPlO7x6I3vvq+FPlGwniAs5+rxtOdjhy6UpQR8H7sZcXoUbmXUgrph47Xfyk2cSXdYuLFS50rS81LXkQA9Uj;4:KkPIORu5t+/05Jfm9DRie6M+X7SaBmufjO3wtsGIZXoDD4ZOg1/b+GZjhb3ZxLLayTDfWLDqYU3RCJj1heKz+x4zWdbxclZJuGan9YLWERSE+rxF2LnTEtACxHwoEC7ZH4LwruvMLChqDzX1PLuBRF4uSJE6XTjCAcEObVJBMbktBNK6aqR6fp2wFnsTQ4+C1kitCeelW7Untt+6XmgIcmunA6xATpRaXoBgyuV7Ux8ejJ8b9C6fL5PDX+ZyBPkwDYGdIqSjPBG3IYEsdLfaiw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011);SRVR:BYAPR15MB2389;BCL:0;PCL:0;RULEID:;SRVR:BYAPR15MB2389; X-Forefront-PRVS: 0667289FF8 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(396003)(366004)(39860400002)(39380400002)(346002)(376002)(199004)(189003)(478600001)(486006)(44832011)(16586007)(6916009)(51416003)(2616005)(68736007)(6506007)(6666003)(4326008)(956004)(86362001)(36756003)(476003)(99286004)(2351001)(97736004)(25786009)(47776003)(6486002)(8676002)(316002)(81156014)(6436002)(2361001)(81166006)(6512007)(5660300001)(50226002)(50466002)(105586002)(305945005)(106356001)(48376002)(107886003)(53936002)(8936002)(26005)(2906002)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:BYAPR15MB2389;H:SN6PR15MB2400.namprd15.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BYAPR15MB2389;23:DnwkDf5/F+dayCWboAvpPMvhTChTdEbLOXLCV/0c6?= =?us-ascii?Q?6yWVATplmRYKkiI4qraE84+IHt3cgFxqK3eYU94y8C1Yw8Q+y58rShSv9r0T?= =?us-ascii?Q?/aARaPd02J0gcp4SqfZkggcuQrwZvlt1bD+QZOD7WtC7UxkgILkBsQJMhMsO?= =?us-ascii?Q?m1D4/dumq5+1aCPfGn8u+5I7oXPFPgcKImJbsj9Cmq41cmvW0txMheOM0lnl?= =?us-ascii?Q?eRSuTwTbCAm979GDg8WsjVdrX13861skRpSSvMGYcsn+T02tpUciL+mE2Uqo?= =?us-ascii?Q?9Kz2g28j38QS0wMv+/pFjFlWmPn253Cc6Oa+ohRKvTI3cS/xZBwDQs81TAkG?= =?us-ascii?Q?ZE+q2R+QWEF4VYYwOK3ohyCFD4haQzFfF7DoGgOAHowniDSvVNxE0imna49x?= =?us-ascii?Q?cdARInkrRTXyCaJ3CbT/yKGAu+k0vDIYdac8Kkfu8jHkgjyDUaPjpyHq1/je?= =?us-ascii?Q?VR57yDtLcvTEuJZvEUTJStZhEb/yMNxA6LemxnqgKe82lB+Hu9DtRzBJDXeB?= =?us-ascii?Q?PyhcknM/jRHRQD0L350Dhmu1UZkwMvmeMPuZFrJSd6hX0hGjoKiMSAIGO2zi?= =?us-ascii?Q?6f3fjCewmRiMS7q0nNpIgBzQYckJdXj+y2biDpzNRETmGwuSo5+MDhDUOG02?= =?us-ascii?Q?/4EnR+atKXlCqaMQAHmDST18SbEDzsvyoC8QFl3c8vMHZ+tCCeOWgH4UwvC0?= =?us-ascii?Q?QOVz0RWY3Jo/Av8/t3JzmoIF6RNUmEqqXZXotRjr8Z9UuioU7mWwDPeoyeWU?= =?us-ascii?Q?lXoY2rIhVfZui0DR0rRI5hHi6rphSzqjeE8yUCl7i+w5mShjEUrkqNcePJzz?= =?us-ascii?Q?7nmbZPDm2UxhaDU8hl/P83N625VASb3xnLTAQZj/c3gtUuv8CetPAMSk/R7B?= =?us-ascii?Q?IHr5I2a+kYl2Y0ZfUzLPu2HLxvACSUJS6zEbDF4cR9juXU4YySxxViHv26Gh?= =?us-ascii?Q?t/omjlWL0VXhs/aWlkCxjDDR3Hi2CC3smBbzz9O3r+QvZNwkoXRtoF2BdUi4?= =?us-ascii?Q?nU3dZJobfueWirQFJaJNhT72CuloymZiTZMmmkiQlhjHXpAUp/1ZNRpX/PCV?= =?us-ascii?Q?mm8T19IRoLnKpcU71/iJlKZkGcvKreGQPO+LzZxvc8GXqTqoW1NlN+dbcMAm?= =?us-ascii?Q?wp5e7V5k8M=3D?= X-Microsoft-Antispam-Message-Info: d+k1gPyl+uaXGAJ9OJDx0tCqzi2sqINzdoj31tMmt92VaZAMMVb6/1ApY43aZlW+yfX9TeO8eKW9D2d8MA01EvGPQxDSPfDuZAlFUMF1t+WZuglWRxQSRYeP4Lp2TcGhCdboiNJo8kZW0LTtpchMQchx17t3qjuS1nbrqQ5eeMvPlsavi6145lwquRhdf2IY X-Microsoft-Exchange-Diagnostics: 1;BYAPR15MB2389;6:zdrYkXqQyFx5Fr1RlBHov4buJL1ql7DNelV0K4qEkJOmbw921YpTsQMZtR4flcAJXZLs/bQnRU9uUiY8Upo4E0f9sxipkamcHkHgRJ89sZOVLxnWqHWHSmjDFpX+BhuRX0gAQHlQyosehxkw3dFQX9moJ+jwsf5wxo3tPuoppZzN5HVPz+QA8nD4h7AnoPKDS05qKWnuxDRrmLtfvBJzsW7VSUD06AgrPS258IsJntSrB28Yh35Y3paANuMpAmtc0flrGPn5+9ba6lzk+qrNA0MBiFj/rPc330sveBs1Dakq0Ta3yAkM6bBuBVu5gUrB1glHLgiueGhBdGmklvdDCLsJmLaV0hprJXQncq48p7W2IRyxFnURimeUorDViWMXHkl/Wv4Sh7f9litwa+GGVkK2L6sd65RSuqkahrhUQZ8U8bPPLQjCJh7It7zEZqeivQGuHgr0IXq2Vattf9tIVg==;5:nNks0xMebAriGrYDNPGdFi6EbmM4ziLAN2JmcqHf6TNlmr5ALpJWIeMBZ7nttBd/IDldwXvOY/qXf2faJTBfaoBHy1xuw4FYpKRzbcQzUz/CdT0/g3qrAbt+tpukh3LqFtCBmLXR3dZ1Q76nXbo+geVa/qI5w7uFqgl28HJyt2E=;24:rO0CHzb5Wgy4UJPm0KRDVV+iLeVBkiWLDGalTCjio4mm0eRACvkOynzaVYzf+PzuvLBXduHvBKysY1PmHSWmfjckwFsIGH7MddWTZ9sR+DM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BYAPR15MB2389;7:3RAikgFyYtT7DYydorBZ0btPMysW9EoS1rbg/bFS7jZiUymtv/V5du79U0U2C02+UxjvQE/D3W6IxLk4iT2iWqLmlKvRU0Oj4QWQiJsUVamGZ+mxZmqZqwy4RLYW2qr5yzsa24K7GiNIxiwaCDf6uozONt/aXlpA7uQKi69K9HHAi3M0AOF++juSLlFj2BGZi5i2FhGWYY1Up52LdNoEYNOW/o/QXtWeJkSDdmqLxVa5TUsLButSlXYUK/HcMsWe X-MS-Office365-Filtering-Correlation-Id: a36ff8e2-440a-4230-87e2-08d5b5f3a0dc X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2018 21:27:12.0780 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a36ff8e2-440a-4230-87e2-08d5b5f3a0dc X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR15MB2389 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00223.txt.bz2 Message-ID: <20180509215700.IXcrGj-G55WKRITHZhRimUEkEca7UdGX1v9fXk-cENQ@z> I made a quick and dirty prototype a while ago where GDB would automatically save and lookup DWARF index files. A few people told me that it was quite useful, so I'm trying to make it suitable for merging. I'm sending it as an RFC first to get comments on the feature and the approach, and because there are probably a few loose ends. Patches 1-4 are mostly cleanup or preparatory, the final one contains the actual feature. The commit message of that last patch also contains more details. Simon Marchi (5): Rename some functions, index -> gdb_index Remove mapped_index::total_size Make index reading functions more modular Introduce scoped_mmapped_file Add DWARF index cache gdb/Makefile.in | 3 + gdb/build-id.h | 11 + gdb/common/pathstuff.c | 16 + gdb/common/pathstuff.h | 10 + gdb/common/scoped_fd.h | 17 +- gdb/common/scoped_mmapped_file.h | 70 +++++ gdb/dwarf-index-cache.c | 421 ++++++++++++++++++++++++++ gdb/dwarf-index-cache.h | 86 ++++++ gdb/dwarf-index-common.h | 5 + gdb/dwarf-index-write.c | 81 +++-- gdb/dwarf-index-write.h | 34 +++ gdb/dwarf2read.c | 257 +++++++++++----- gdb/dwarf2read.h | 5 + gdb/testsuite/boards/local-board.exp | 1 + gdb/testsuite/gdb.base/index-cache.c | 23 ++ gdb/testsuite/gdb.base/index-cache.exp | 204 +++++++++++++ gdb/testsuite/gdb.base/maint.exp | 23 ++ gdb/testsuite/lib/mi-support.exp | 16 +- gdb/unittests/scoped_mmapped_file-selftests.c | 95 ++++++ 19 files changed, 1270 insertions(+), 108 deletions(-) create mode 100644 gdb/common/scoped_mmapped_file.h create mode 100644 gdb/dwarf-index-cache.c create mode 100644 gdb/dwarf-index-cache.h create mode 100644 gdb/dwarf-index-write.h create mode 100644 gdb/testsuite/gdb.base/index-cache.c create mode 100644 gdb/testsuite/gdb.base/index-cache.exp create mode 100644 gdb/unittests/scoped_mmapped_file-selftests.c -- 2.7.4