From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id wAXNA8aaPWA3MAAAWB0awg (envelope-from ) for ; Mon, 01 Mar 2021 20:54:14 -0500 Received: by simark.ca (Postfix, from userid 112) id 0A9E61EF7C; Mon, 1 Mar 2021 20:54:14 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from 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 RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 2F5981EF78 for ; Mon, 1 Mar 2021 20:54:11 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D5219393C866; Tue, 2 Mar 2021 01:54:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D5219393C866 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1614650050; bh=GeHRnkyfGYYZjkx73IujZBsSov53FM/M4DunuSdqSAA=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=BjjN+sjD59rASv7y/iC9i3gJlENY1ssxR+B9Go7Nm0Bo3vSpe26y7hE4sm64JK906 EwWzgn8FRbf1bx0eZZvxHqe2t9azKRH4hd3eIJqRmgxiCGWj7O4RbnDYKLkpU98vR1 ErIsj4cZFuHjl1xvtrPCKXKGiKlA0PNEPnDCtIyA= Received: from aserp2130.oracle.com (aserp2130.oracle.com [141.146.126.79]) by sourceware.org (Postfix) with ESMTPS id 66472393C84E for ; Tue, 2 Mar 2021 01:54:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 66472393C84E Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 1221nP23148781 for ; Tue, 2 Mar 2021 01:54:06 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by aserp2130.oracle.com with ESMTP id 36ybkb60pm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 02 Mar 2021 01:54:06 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 1221oVtq066218 for ; Tue, 2 Mar 2021 01:54:06 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2174.outbound.protection.outlook.com [104.47.57.174]) by userp3020.oracle.com with ESMTP id 36yyurbp8c-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 02 Mar 2021 01:54:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GmOcbkI0QDvEghqXe2hYD96eQthDNGa2VC8Dj3sxNBrblEZGh9PcO5Zlsazsd8b+jxbwSBargOmV8/9u4ubPRjn0jupvxof8FaAuwtDdCUo/rfACyZLzWw+9IzjaWxwsNgd35TfcxcSneOEaTj0JRpblw49WJDOQQHIzcAsftcYfV2euE8YSPsUbDff7gPsb88DFIzsSoOspgzjP6n2c8m1HbVw0MKHqCev1iCY8YQ5MkZz0KofCULDxsmZhZL3uhLbWsRBISkWk0rqLkLiFTdFdSnHXhVhzGglc4bq9gVbcO8TzdBtN6GOYiUW1tzNGWC2sGdwmVRUaeyNI1V1L0A== 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-SenderADCheck; bh=GeHRnkyfGYYZjkx73IujZBsSov53FM/M4DunuSdqSAA=; b=dNFVYK9VgF7hs7kLS9KuDCJM8SqFslTwhiICHdt65CMoNFjlAijHX+RdUJjbAI2MQymUs3hf3auupDwytssFiAoWa9y84ZUJjHIS4foLXcCrIfAr2us4th3h8lU0b5ftxFFcCjir3CFvuO50iAmh/Dq+eLMbiEK+TlZf5Dxd95y9gJ8lZAj7SNDIIktb6BMkA7187er/HGK0SlKRIYjidvJMzz54W+pAnXaZcqIYaKSmTPvhGv46SjmJLTn6wPuCI07iZPiqrO0z3z6/TRxAMB28A1HSZVfW/7ruYAJH6CgvQEAY6Kehui7vFrMeo4d/TmY0666kDTp+Jyb6cTsT9Q== 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 Received: from BN6PR10MB1748.namprd10.prod.outlook.com (2603:10b6:405:9::16) by BN0PR10MB5383.namprd10.prod.outlook.com (2603:10b6:408:124::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.20; Tue, 2 Mar 2021 01:54:04 +0000 Received: from BN6PR10MB1748.namprd10.prod.outlook.com ([fe80::1163:f828:25bb:2538]) by BN6PR10MB1748.namprd10.prod.outlook.com ([fe80::1163:f828:25bb:2538%7]) with mapi id 15.20.3890.029; Tue, 2 Mar 2021 01:54:04 +0000 To: gdb-patches@sourceware.org Subject: [PATCH,V2 4/5] CTF: add all members of an enum type to psymtab Date: Mon, 1 Mar 2021 20:53:37 -0500 Message-Id: <1614650018-9135-5-git-send-email-weimin.pan@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1614650018-9135-4-git-send-email-weimin.pan@oracle.com> References: <1614650018-9135-1-git-send-email-weimin.pan@oracle.com> <1614650018-9135-2-git-send-email-weimin.pan@oracle.com> <1614650018-9135-3-git-send-email-weimin.pan@oracle.com> <1614650018-9135-4-git-send-email-weimin.pan@oracle.com> Content-Type: text/plain X-Originating-IP: [148.87.23.7] X-ClientProxiedBy: SJ0PR05CA0203.namprd05.prod.outlook.com (2603:10b6:a03:330::28) To BN6PR10MB1748.namprd10.prod.outlook.com (2603:10b6:405:9::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.us.oracle.com (148.87.23.7) by SJ0PR05CA0203.namprd05.prod.outlook.com (2603:10b6:a03:330::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.11 via Frontend Transport; Tue, 2 Mar 2021 01:54:03 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3a709496-cf3d-49ad-6565-08d8dd1e0ee5 X-MS-TrafficTypeDiagnostic: BN0PR10MB5383: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:765; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: amQbpXqHPBY/WXCxPK/Ls1IkIAP7y5z4AA68Wah2nvAUSNG/RYBX581hPi6Es9QqEjyBu5av8Xv9ckFs5djy1dCgF+SvzvUy6sHRVC22k0HMGkgs9bip0BcVYDX8EQ/cYhG5e0hp7sLkAweOx58fVBtiO1eaz95lfPKVmHwwUVPjiNw22L7NDpf/8/jnvBURI+M4p4PUOE0KzUbshJa1fqqD0MLJYz56kAg7G1oirygF4dMeYzrAVE/3a5opavKZHou/h8PpDWpTJ0llt8pNXS2fHG5lym9hLvahiSLhQZJUdsSdj3nhapAYxEtfSuVFvFwINXH9fMFSA28L6vAI15X2Qpo/JHtfPJBTOspGdlboo43RwNv5WRKsbZ/LXoZZzFqsceQmQ3zsXb4kb8uO04TWq6OuAJmF/RHBdREGjoF4L4Q7lBP/WYXGVKVcRBs+Jadgs2cGymzQxcgJHSlxA8UZmFhBdWrS1lZULMfSMkAJm/vmWeQ13Mcegjm2qc9AttXrOFS26rdo+WUe5+y1Wg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN6PR10MB1748.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(376002)(136003)(346002)(396003)(39860400002)(66946007)(16526019)(66556008)(66476007)(6666004)(316002)(83380400001)(6486002)(44832011)(956004)(8676002)(5660300002)(2616005)(2906002)(8936002)(6916009)(478600001)(36756003)(7696005)(52116002)(86362001)(26005)(186003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?UFVO3kr1ubnSjd8Uy+ad2B87DtV8M4Va90t+je8RT/zStUhLKr0KUqS1MCZD?= =?us-ascii?Q?0yw1AeN98V6OAsq9uc2/JGs10j2F+seau5Qlzd5abX+FTJtYzC3DNLH85L1P?= =?us-ascii?Q?1/rml+AQ7TFjqK8ts8k4WKmNhq1W8ZEE9awsu2Gft/O17RMtx1dr0g3leS0+?= =?us-ascii?Q?djJaYLvAvdM13/jJadtGXW911jd74ALRhfSQLwMXOrc3JI40qyELbwRxYGrO?= =?us-ascii?Q?jlnug3nJVXQumnmSgKLSDrXJ5vSDhc8Gq12SAce6buRnaBo0/uhYIGKjf0/i?= =?us-ascii?Q?PfOt8AgXhHguwitJI4a67veIb+/AGnS0LPK80mwI7IK6z+F5Cj+yyb5y4bDK?= =?us-ascii?Q?lWwY1xLtT8CGS1WONIwdYfE5BcPpHgw334b/7gyFtZQHFvAtLhQ4c7FAYR0n?= =?us-ascii?Q?biDQcj1I5OdksMkD8yUyt4iJJEAx47PtGj0y7i9BSJVsyQ49n3B1bzcTjypt?= =?us-ascii?Q?4tLWES4HmH3Fg/TIOLnk9xfW421o6aaYnBD7DyHScQBF7jJleBxCx7SOXXgZ?= =?us-ascii?Q?Ycipo8hc98pCmvS3w2ara5DozV4pV7xeymzx+U3ovLExMfjlJYaY0ztVDxln?= =?us-ascii?Q?jsbyElzoYadKKvJBsjR3b4zlKjv8bEhkZ7nHNA4Y8vMCl8hawjqw46B9vypA?= =?us-ascii?Q?QwILVr+F+ZtsAlxRVY8aekaTvvabknJyojZRtJbMjPZaiatWSye+2UbpRVCV?= =?us-ascii?Q?fcPzpLQoVU1da1PX/BqkXMaPVpkcZn6kQatAoB+e4paZtwuaHgQQyJsmpbGj?= =?us-ascii?Q?qfJ/U6mWCObsJfwD2KJmMlEgYGad7y25dTAhEMAFCG4nm9eYr76Qt8HCeWMm?= =?us-ascii?Q?nofEGaXSMDEk5izFzHPVZP7tv4wYowp3EUb/YqvDem8g91qe6z0mwRo36aGK?= =?us-ascii?Q?89QgcC9nwwowLKR725uWdMN3kOhpSDmWJq8rJTFxMk+9vwbaCNJQvA1g8/dL?= =?us-ascii?Q?i2CpqJWjXuAvmHyLy9OSSt8gPXcsqLNLBceL7c697yQsAuGCcbMi02a6KdFU?= =?us-ascii?Q?llx4Fm9fp328WZ2n3LjQgT4TkeIeTF2trVHzyhWsRzfGOeaQXtE7QFFUkkZM?= =?us-ascii?Q?iHZNhwj8BVURvkLFTICbrhx6Q9po1gKjRgMwe+eCG1fetm+sCdGakVqJbZ6n?= =?us-ascii?Q?UCd8FRvxmJUiBFpFXL235pRibwjdQHik6ZXbZ0VBw1IZ/3AVqbJnUkCgP7hU?= =?us-ascii?Q?XluL6JBrvcpnaE5qViYSgpw3cNqh/WlDtsPAzOh+B819uWj6GEg2rhLlsIlW?= =?us-ascii?Q?BxtjrV9YjZwhUAEjcTopvndDEjFyCJKLVYJwwgw+imwtYPA5emT50CWwbbRj?= =?us-ascii?Q?137ckvIyGbmPcYRSkIozlRv3?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3a709496-cf3d-49ad-6565-08d8dd1e0ee5 X-MS-Exchange-CrossTenant-AuthSource: BN6PR10MB1748.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2021 01:54:04.4056 (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: gqhPKyOtDmjH5eQCZthUuGwC8np3nWjVHb0+6HoRVcmcosFYAJSFRTs5jSbxJwIYyBPHx1KUZ8hipoo24HCMPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB5383 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9910 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 adultscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103020011 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9910 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 impostorscore=0 suspectscore=0 phishscore=0 bulkscore=0 mlxscore=0 lowpriorityscore=0 clxscore=1015 mlxlogscore=999 adultscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103020011 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Weimin Pan via Gdb-patches Reply-To: Weimin Pan Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" With the following change which was made last April: [gdb] Use partial symbol table to find language for main commit d3214198119c1a2f9a6a2b8fcc56d8c324e1a245 The ctf reader was modified to enter all members of an enum type, similar to what the dwarf2 reader did, into the psymtab or gdb won't be able to find them. In addition, the empty name checking needed to be moved down so members of a unnamed enum were not left out. --- gdb/ChangeLog | 5 +++++ gdb/ctfread.c | 30 +++++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dac61a3..31cac5c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2021-02-26 Weimin Pan + * ctfread.c (ctf_psymtab_add_enums): New function. + (ctf_psymtab_type_cb): call ctf_psymtab_add_enums. + +2021-02-26 Weimin Pan + * ctfread.c (fetch_tid_type): New function, use throughout file. (read_forward_type): New function. (read_type_record): Call read_forward_type. diff --git a/gdb/ctfread.c b/gdb/ctfread.c index d3e6ad5..bb73949 100644 --- a/gdb/ctfread.c +++ b/gdb/ctfread.c @@ -1294,6 +1294,27 @@ struct ctf_tid_and_type return result; } +/* Add all members of an enum with type TID to partial symbol table. */ + +static void +ctf_psymtab_add_enums (struct ctf_context *ccp, ctf_id_t tid) +{ + int val; + const char *ename; + ctf_next_t *i = NULL; + + while ((ename = ctf_enum_next (ccp->fp, tid, &i, &val)) != NULL) + { + ccp->pst->add_psymbol (ename, true, + VAR_DOMAIN, LOC_CONST, -1, + psymbol_placement::GLOBAL, + 0, language_c, ccp->of); + } + if (ctf_errno (ccp->fp) != ECTF_NEXT_END) + complaint (_("ctf_enum_next ctf_psymtab_add_enums failed - %s"), + ctf_errmsg (ctf_errno (ccp->fp))); +} + /* Read in full symbols for PST, and anything it depends on. */ void @@ -1415,17 +1436,17 @@ struct ctf_tid_and_type ccp = (struct ctf_context *) arg; gdb::unique_xmalloc_ptr name (ctf_type_aname_raw (ccp->fp, tid)); - if (name == NULL || strlen (name.get ()) == 0) - return 0; domain_enum domain = UNDEF_DOMAIN; enum address_class aclass = LOC_UNDEF; kind = ctf_type_kind (ccp->fp, tid); switch (kind) { + case CTF_K_ENUM: + ctf_psymtab_add_enums (ccp, tid); + /* FALL THROUGH */ case CTF_K_STRUCT: case CTF_K_UNION: - case CTF_K_ENUM: domain = STRUCT_DOMAIN; aclass = LOC_TYPEDEF; break; @@ -1456,6 +1477,9 @@ struct ctf_tid_and_type return 0; } + if (name == NULL || strlen (name.get ()) == 0) + return 0; + ccp->pst->add_psymbol (name.get (), true, domain, aclass, section, psymbol_placement::GLOBAL, -- 1.8.3.1