From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14072 invoked by alias); 12 Sep 2011 18:34:36 -0000 Received: (qmail 13943 invoked by uid 22791); 12 Sep 2011 18:34:35 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_BJ X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 12 Sep 2011 18:34:19 +0000 Received: from hpaq7.eem.corp.google.com (hpaq7.eem.corp.google.com [172.25.149.7]) by smtp-out.google.com with ESMTP id p8CIYIXh027374 for ; Mon, 12 Sep 2011 11:34:18 -0700 Received: from ruffy.mtv.corp.google.com (ruffy.mtv.corp.google.com [172.18.110.50]) by hpaq7.eem.corp.google.com with ESMTP id p8CIYGhx031837 for ; Mon, 12 Sep 2011 11:34:17 -0700 Received: by ruffy.mtv.corp.google.com (Postfix, from userid 67641) id 606D5246194; Mon, 12 Sep 2011 11:34:16 -0700 (PDT) To: gdb-patches@sourceware.org Subject: [patch] dwarf2read.c (partial_read_comp_unit_head) cleanup Message-Id: <20110912183416.606D5246194@ruffy.mtv.corp.google.com> Date: Mon, 12 Sep 2011 19:06:00 -0000 From: dje@google.com (Doug Evans) X-System-Of-Record: true X-IsSubscribed: yes 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 X-SW-Source: 2011-09/txt/msg00203.txt.bz2 Hi. There may have been a reason in the past to not have partial_read_comp_unit_head set offset,first_die_offset but I can't think of one now. I will check this in in a few days if there are no objections. 2011-09-12 Doug Evans * dwarf2read.c (partial_read_comp_unit_head): Set header->offset, header->first_die_offset here. All callers updated. Index: dwarf2read.c =================================================================== RCS file: /cvs/src/src/gdb/dwarf2read.c,v retrieving revision 1.560 diff -u -p -r1.560 dwarf2read.c --- dwarf2read.c 9 Sep 2011 19:41:13 -0000 1.560 +++ dwarf2read.c 12 Sep 2011 18:29:28 -0000 @@ -2268,7 +2268,7 @@ dw2_get_file_names (struct objfile *objf struct cleanup *cleanups; struct die_info *comp_unit_die; struct dwarf2_section_info* sec; - gdb_byte *beg_of_comp_unit, *info_ptr, *buffer; + gdb_byte *info_ptr, *buffer; int has_children, i; struct dwarf2_cu cu; unsigned int bytes_read, buffer_size; @@ -2295,16 +2295,11 @@ dw2_get_file_names (struct objfile *objf buffer_size = sec->size; buffer = sec->buffer; info_ptr = buffer + this_cu->offset; - beg_of_comp_unit = info_ptr; info_ptr = partial_read_comp_unit_head (&cu.header, info_ptr, buffer, buffer_size, abfd); - /* Complete the cu_header. */ - cu.header.offset = beg_of_comp_unit - buffer; - cu.header.first_die_offset = info_ptr - beg_of_comp_unit; - this_cu->cu = &cu; cu.per_cu = this_cu; @@ -2940,6 +2935,8 @@ read_comp_unit_head (struct comp_unit_he return info_ptr; } +/* Read in a CU header and perform some basic error checking. */ + static gdb_byte * partial_read_comp_unit_head (struct comp_unit_head *header, gdb_byte *info_ptr, gdb_byte *buffer, unsigned int buffer_size, @@ -2947,8 +2944,12 @@ partial_read_comp_unit_head (struct comp { gdb_byte *beg_of_comp_unit = info_ptr; + header->offset = beg_of_comp_unit - buffer; + info_ptr = read_comp_unit_head (header, info_ptr, abfd); + header->first_die_offset = info_ptr - beg_of_comp_unit; + if (header->version != 2 && header->version != 3 && header->version != 4) error (_("Dwarf Error: wrong version in compilation unit header " "(is %d, should be 2, 3, or 4) [in module %s]"), header->version, @@ -3334,10 +3335,6 @@ process_psymtab_comp_unit (struct objfil buffer, buffer_size, abfd); - /* Complete the cu_header. */ - cu.header.offset = beg_of_comp_unit - buffer; - cu.header.first_die_offset = info_ptr - beg_of_comp_unit; - cu.list_in_scope = &file_symbols; /* If this compilation unit was already read in, free the @@ -3598,7 +3595,7 @@ load_partial_comp_unit (struct dwarf2_pe struct objfile *objfile) { bfd *abfd = objfile->obfd; - gdb_byte *info_ptr, *beg_of_comp_unit; + gdb_byte *info_ptr; struct die_info *comp_unit_die; struct dwarf2_cu *cu; struct cleanup *free_abbrevs_cleanup, *free_cu_cleanup = NULL; @@ -3610,7 +3607,6 @@ load_partial_comp_unit (struct dwarf2_pe gdb_assert (dwarf2_per_objfile->info.readin); info_ptr = dwarf2_per_objfile->info.buffer + this_cu->offset; - beg_of_comp_unit = info_ptr; if (this_cu->cu == NULL) { @@ -3627,10 +3623,6 @@ load_partial_comp_unit (struct dwarf2_pe dwarf2_per_objfile->info.size, abfd); - /* Complete the cu_header. */ - cu->header.offset = this_cu->offset; - cu->header.first_die_offset = info_ptr - beg_of_comp_unit; - /* Link this compilation unit into the compilation unit tree. */ this_cu->cu = cu; cu->per_cu = this_cu;