From patchwork Sun Nov 20 14:50:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philippe Waroquiers X-Patchwork-Id: 60893 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 735C3396E87C for ; Sun, 20 Nov 2022 14:50:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 735C3396E87C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1668955850; bh=frQo91KHrNrXislmFgK6GmEA+goIndmeBZzhU5a7Edw=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=oBuosIW4yHUCfUFzXiPBa05wpPUtTf+ucU8jIYImucvXkU9XQgrK8L0rFgQ01z//+ kIMFg2S5qrzcrkoHPSP75RsIyvylbryiaV3RSPrzPWvLrGdCx2g+ojhc3x6gBlaiYF U+FFbYv0d/C6Oqj6bxbRukZDj6hXx48arEiEAx+0= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mailsec117.isp.belgacom.be (mailsec117.isp.belgacom.be [195.238.20.113]) by sourceware.org (Postfix) with ESMTPS id 6CB67396E868 for ; Sun, 20 Nov 2022 14:50:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6CB67396E868 X-ExtLoop: 1 X-IPAS-Result: A2DdBADtPXpj/1uGgG1agRKuFoV+h1UPAQEBAQEBAQEBCUQEAQGFBYUEJjgTAQIEAQEBAQMCAwEBAQEBAQMBAQYBAQEBAQEGBAGBG4UvRoI1IoN/NgFGKIQmgyO0DxoCZYRwmmaBZ4FAi06FeYFVRI9/BJgwAwkDBwVJQAMLGA0WMgoTNxtYDgkfHCUNBQYSAyBsBQc6DygvZyscGweBDCooFQMEBAMCBhMDIgINKTEUBCkTDSsnbwkCAyFqAwMEKCwDCSEfBycmPAdWOgUDAg8gOAYDCQMCIhNCdC8SFAUDCxUlCAVLBAg5BQZTEgIKEQMSDyxFDkg+ORYGJ0IBMQ4OFANeSx2BAQSCJgqcDHsUgiiTEBOSYpp6gX80B4NrgUcGDJ5hGjKDeJMgAxiRYgEthx6PaaMnhFGBeYF+bYM7URmOOhcVjhqBLwIHCwEBAwmKYgEB IronPort-PHdr: A9a23:yB/0pBDR1M4Ligix5Y2WUyQU+0MY04WdBeb1wqQuh78GSKm/5ZOqZ BWZua8xygKVFtmHo7Ic0qyK6fumATRBqb+681k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF 95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba19I RmsrQjcucYajIRtJ60szhfFvmZEd/5ZyG92K1+fhQrw6tu18JV+7ylepvUt+tJaX67nZao4V 7tYDDonM2Ax+sLmsATIQBWM6HUBTGgYiwJEDAfZ4h70WJfxqTb6ufFm2CaGJ832TKs7Viqk4 qx2VRLnkiYHNzo+8GHKlsx9ib9QrRy9qxBjxYPffYeYP+d8cKzAZ9MXXWpPUNhPWiJcDI2yb IwBAOUOM+tDs4XwpEEDoQekCAWwGO/izCJDiH/s3a091uQsCRvI3AwhH9IKsXTUtM31O7kPW u+11qbI1zLDb+pL2Tf89ofIaAshquyLULJoccrRyE0vFwLdjlWIt4PpJT2U2f4Xs2ic9upgS OOvhHA9qwFquTWv3cQsi4nPho0L1lDI7z52z5gsKNC+VUV0bsKqHoFKuCGGK4t5XNkiQ2dwt Ss017ALuJG2cDUKxponxxDSb/+Kf5WV7x79WuifLil1inx5dL+9iRu/7Emtx+LyWMe7zltGs CtInsTDu30R1hHe7NWMRPhl/kq5xDqDywTe5vtZLUwqlqfXMYMtz7A/m5YJtUnPAyn7k1jsg qCMbEUr4O2o5vziYrXhu5CTKZd5ihr7MqQygsy/Bvk4MhQWU2ib5+u80Lrj8FX8QLpXlPE2k q7ZsJXEKsgDp665BRFa0po75hqiEzur1M4UkWQZIF9GYh6LkobkNl7ULP38EPuzm1Gsny1qx /DCML3hGJLNLn3bnbf5fbZ96kpcyAsrzdBH+Z1YEL8AL+jpWk/2rdzYEx45PBKuw+b8E9h9z YAeWGKJAqCHLKPeq0SH6fw3L+mKf4AaoCz9JOQ95/7ykX85nkcQcbex0ZsNdH+4BuhmI1meY Xf0jdcODHwFshMmTOPwlF2NTT5TaGipX68n/TE7D5+mDZ3fSY+zjr2Oxj27EYNMamBBEFCMH m/kd5+YVPcUdCKSPshhnyQcVbihSo8h0RCutBfiy7V5NObV9DcXtYjk1Nhs+u3TlA899SZvD 8mGyGGNTGF1nmUWSD8qxqxwulJymR+/1v13j/YdDdVP7PNESS8hMoPGxOFlAsr/HAXbcYSnU lGjF+2mADUwVso8i+AHeUFkBtSvlAuLizKqArsUj6SGQoM96KXFwnn8Pd1V0HXX0qQ9yVMrF JgcfVa6j7JyolCAT7XClF+Uwv7CSA== IronPort-Data: A9a23:+kzkQapiPkQgcl4Y5Jv9w/nXEUNeBmJSZBIvgKrLsJaIsI4StFCzt garIBmPOa6LZGf0Kop+b4q09BgE65eDnYUxSlA4pHxjRH8b9uPIVI+TRqvS04N+DSFioGZPt Zh2hgzodZhsJpPkjk7xdOKn9BGQ7InQLpLkEunIJyttcgFtTSYlmHpLlvUw6mJSqYHR7zil5 JWj/aUzBHf/g2QuaztOs/rawP9SlK2aVA0w7wRWic9j4Qe2e0k9VPo3Oay3Jn3kdYhYdsbSq zHrlezREsvxpn/BO/v9+lrJWhRiro36YWBivkFrt52K2XCukMCdPpETb5LwYW8P49mAcksYJ N9l7fRcQi9xVkHAdXh0vxRwS0lD0aN6FLDvH12f6NOt33f6SnL34/ZAN2NvNtVI07MiaY1O3 aRwxDElaxzFh+WzzdpXSME13pVldZO7etpE5jcxlFk1Dt5/KXzHa73K5NtZxC89wN9HB/HHe ssUcyFHdxfRZRBTfF0aYH47tL702CSgLWUJ8Tp5o4I9/2zfyyt+yoO3D/+IRZuGYOR/pUCH8 zeuE2PRR0ty2Mak4TWJ+De0j/PEnS7gcJkVCaez++FjmlDVwXYcYDUOVVq/oOGhhwihUshYM lEV9zA1hbMx5UqmUp/3UnWFTGWs50ZNHYMKQ6tjs13Lm/O8DxulO1XohwVpMLQO3PLajxRwv rNVt7sFzgCDfFFYpbxxO1tUQf6P1fApEFI/ IronPort-HdrOrdr: A9a23:d2skWajqb9yduajloqus2Tuq6XBQXsMji2hC6mlwRA09TyVXra 2TdZMgpHzJYVkqN03I9erqBEDiexPhHOBOj7X5VI3KNDUO01HFEGgN1+HfKkXbehHDyg== X-IronPort-Anti-Spam-Filtered: true X-ProximusIPWarmup: true Received: from unknown (HELO md.home) ([109.128.134.91]) by relay.proximus.be with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Nov 2022 15:50:22 +0100 To: gdb-patches@sourceware.org Cc: Philippe Waroquiers Subject: [RFA] Fix jump on uninit producer_is_clang of cu.h, rm declared/undefined find_partial_die Date: Sun, 20 Nov 2022 15:50:14 +0100 Message-Id: <20221120145014.2928620-1-philippe.waroquiers@skynet.be> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org 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: , X-Patchwork-Original-From: Philippe Waroquiers via Gdb-patches From: Philippe Waroquiers Reply-To: Philippe Waroquiers Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" Valgrind reports a "jump on unitialised bit error" when running e.g. gdb.base/macro-source-path.exp (see details below). Fix this by initializing producer_is_clang member variable of dwarf2_cu. Also remove the declared but undefined/unused method struct partial_die_info *find_partial_die (sect_offset sect_off); Tested on amd64/debian11 and re-running gdb.base/macro-source-path.exp under valgrind. ==2140965== Conditional jump or move depends on uninitialised value(s) ==2140965== at 0x5211F7: dwarf_decode_macro_bytes(dwarf2_per_objfile*, buildsym_compunit*, bfd*, unsigned char const*, unsigned char const*, macro_source_file*, line_header const*, dwarf2_section_info const*, int, int, unsigned int, dwarf2_section_info*, dwarf2_section_info*, gdb::optional, htab*, dwarf2_cu*) (macro.c:676) ==2140965== by 0x52158A: dwarf_decode_macros(dwarf2_per_objfile*, buildsym_compunit*, dwarf2_section_info const*, line_header const*, unsigned int, unsigned int, dwarf2_section_info*, dwarf2_section_info*, gdb::optional, int, dwarf2_cu*) (macro.c:967) ==2140965== by 0x523BC4: dwarf_decode_macros(dwarf2_cu*, unsigned int, int) (read.c:23379) ==2140965== by 0x552AB5: read_file_scope(die_info*, dwarf2_cu*) (read.c:9687) ==2140965== by 0x54F7B2: process_die(die_info*, dwarf2_cu*) (read.c:8660) ==2140965== by 0x5569C7: process_full_comp_unit (read.c:8429) ==2140965== by 0x5569C7: process_queue (read.c:7675) ==2140965== by 0x5569C7: dw2_do_instantiate_symtab (read.c:2063) ==2140965== by 0x5569C7: dw2_instantiate_symtab(dwarf2_per_cu_data*, dwarf2_per_objfile*, bool) (read.c:2085) ==2140965== by 0x55700B: dw2_expand_symtabs_matching_one(dwarf2_per_cu_data*, dwarf2_per_objfile*, gdb::function_view, gdb::function_view) (read.c:3984) ==2140965== by 0x557EA3: cooked_index_functions::expand_symtabs_matching(objfile*, gdb::function_view, lookup_name_info const*, gdb::function_view, gdb::function_view, enum_flags, domain_enum, search_domain) (read.c:18781) ==2140965== by 0x778977: objfile::lookup_symbol(block_enum, char const*, domain_enum) (symfile-debug.c:276) .... ==2140965== Uninitialised value was created by a heap allocation ==2140965== at 0x4839F01: operator new(unsigned long) (vg_replace_malloc.c:434) ==2140965== by 0x533A64: cutu_reader::cutu_reader(dwarf2_per_cu_data*, dwarf2_per_objfile*, abbrev_table*, dwarf2_cu*, bool, abbrev_cache*) (read.c:6264) ==2140965== by 0x5340C2: load_full_comp_unit(dwarf2_per_cu_data*, dwarf2_per_objfile*, dwarf2_cu*, bool, language) (read.c:7729) ==2140965== by 0x548338: load_cu(dwarf2_per_cu_data*, dwarf2_per_objfile*, bool) (read.c:2021) ==2140965== by 0x55634C: dw2_do_instantiate_symtab (read.c:2048) ==2140965== by 0x55634C: dw2_instantiate_symtab(dwarf2_per_cu_data*, dwarf2_per_objfile*, bool) (read.c:2085) ==2140965== by 0x55700B: dw2_expand_symtabs_matching_one(dwarf2_per_cu_data*, dwarf2_per_objfile*, gdb::function_view, gdb::function_view) (read.c:3984) ==2140965== by 0x557EA3: cooked_index_functions::expand_symtabs_matching(objfile*, gdb::function_view, lookup_name_info const*, gdb::function_view, gdb::function_view, enum_flags, domain_enum, search_domain) (read.c:18781) ==2140965== by 0x778977: objfile::lookup_symbol(block_enum, char const*, domain_enum) (symfile-debug.c:276) .... --- gdb/dwarf2/cu.c | 1 + gdb/dwarf2/cu.h | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/gdb/dwarf2/cu.c b/gdb/dwarf2/cu.c index e95208e2e75..af95725ebcf 100644 --- a/gdb/dwarf2/cu.c +++ b/gdb/dwarf2/cu.c @@ -39,6 +39,7 @@ dwarf2_cu::dwarf2_cu (dwarf2_per_cu_data *per_cu, producer_is_icc (false), producer_is_icc_lt_14 (false), producer_is_codewarrior (false), + producer_is_clang (false), processing_has_namespace_info (false), load_all_dies (false) { diff --git a/gdb/dwarf2/cu.h b/gdb/dwarf2/cu.h index 51638e71b19..52975095871 100644 --- a/gdb/dwarf2/cu.h +++ b/gdb/dwarf2/cu.h @@ -278,8 +278,6 @@ struct dwarf2_cu hash table and don't find it. */ bool load_all_dies : 1; - struct partial_die_info *find_partial_die (sect_offset sect_off); - /* Get the buildsym_compunit for this CU. */ buildsym_compunit *get_builder (); };