From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9010 invoked by alias); 19 Oct 2011 00:30:35 -0000 Received: (qmail 9001 invoked by uid 22791); 19 Oct 2011 00:30:34 -0000 X-SWARE-Spam-Status: No, hits=-1.9 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; Wed, 19 Oct 2011 00:30:19 +0000 Received: from hpaq6.eem.corp.google.com (hpaq6.eem.corp.google.com [172.25.149.6]) by smtp-out.google.com with ESMTP id p9J0UH6S011157 for ; Tue, 18 Oct 2011 17:30:18 -0700 Received: from gyd8 (gyd8.prod.google.com [10.243.49.200]) by hpaq6.eem.corp.google.com with ESMTP id p9J0TtQ6028313 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Tue, 18 Oct 2011 17:30:16 -0700 Received: by gyd8 with SMTP id 8so1716825gyd.10 for ; Tue, 18 Oct 2011 17:30:16 -0700 (PDT) Received: by 10.101.24.4 with SMTP id b4mr1021937anj.108.1318984216443; Tue, 18 Oct 2011 17:30:16 -0700 (PDT) MIME-Version: 1.0 Received: by 10.101.24.4 with SMTP id b4mr1021932anj.108.1318984216191; Tue, 18 Oct 2011 17:30:16 -0700 (PDT) Received: by 10.100.154.19 with HTTP; Tue, 18 Oct 2011 17:30:16 -0700 (PDT) Date: Wed, 19 Oct 2011 00:44:00 -0000 Message-ID: Subject: [patch] Allow dummy CUs created by incremental linker From: Cary Coutant To: gdb-patches@sourceware.org Cc: Doug Evans Content-Type: multipart/mixed; boundary=00504501764caba2c604af9bf1e0 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-10/txt/msg00519.txt.bz2 --00504501764caba2c604af9bf1e0 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 922 With the new incremental linking support in gold, we leave patch space in the file at link time, and use that patch space for incremental updates. If the file has debug info, that means that the debug info might have "holes" in it. Because the debugger can't deal with arbitrary holes in the debug info, gold fills the holes with dummy compilation units, where each dummy CU consists of a compilation unit header whose length field cover the hole, and the rest of the space filled with zeroes. This patch updated gdb to tolerate these dummy CUs, by checking for an empty CU before attempting to read the DIEs. Tested on x86_64 with the latest gold. -cary * dwarf2read.c (peek_abbrev_code): New function. (dw2_get_file_names): Check for dummy compilation units. (create_debug_types_hash_table): Likewise. (process_psymtab_comp_unit): Likewise. (load_partial_comp_unit): Likewise. (load_full_comp_unit): Likewise. --00504501764caba2c604af9bf1e0 Content-Type: text/plain; charset=US-ASCII; name="gdb-empty-cu-patch-2.txt" Content-Disposition: attachment; filename="gdb-empty-cu-patch-2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gtxl07q30 Content-length: 5259 MjAxMS0xMC0xOCAgQ2FyeSBDb3V0YW50ICA8Y2NvdXRhbnRAZ29vZ2xlLmNv bT4KCgkqIGR3YXJmMnJlYWQuYyAocGVla19hYmJyZXZfY29kZSk6IE5ldyBm dW5jdGlvbi4KCShkdzJfZ2V0X2ZpbGVfbmFtZXMpOiBDaGVjayBmb3IgZHVt bXkgY29tcGlsYXRpb24gdW5pdHMuCgkoY3JlYXRlX2RlYnVnX3R5cGVzX2hh c2hfdGFibGUpOiBMaWtld2lzZS4KCShwcm9jZXNzX3BzeW10YWJfY29tcF91 bml0KTogTGlrZXdpc2UuCgkobG9hZF9wYXJ0aWFsX2NvbXBfdW5pdCk6IExp a2V3aXNlLgoJKGxvYWRfZnVsbF9jb21wX3VuaXQpOiBMaWtld2lzZS4KCgpJ bmRleDogZHdhcmYycmVhZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZHdhcmYycmVhZC5jLHYKcmV0cmll dmluZyByZXZpc2lvbiAxLjU3NApkaWZmIC11IC1wIC1yMS41NzQgZHdhcmYy cmVhZC5jCi0tLSBkd2FyZjJyZWFkLmMJMTcgT2N0IDIwMTEgMTI6NTc6MTQg LTAwMDAJMS41NzQKKysrIGR3YXJmMnJlYWQuYwkxOSBPY3QgMjAxMSAwMDow MDowNCAtMDAwMApAQCAtOTM2LDYgKzkzNiw4IEBAIHN0YXRpYyB2b2lkIGR3 YXJmMl9yZWFkX2FiYnJldnMgKGJmZCAqYWIKIAogc3RhdGljIHZvaWQgZHdh cmYyX2ZyZWVfYWJicmV2X3RhYmxlICh2b2lkICopOwogCitzdGF0aWMgdW5z aWduZWQgaW50IHBlZWtfYWJicmV2X2NvZGUgKGJmZCAqLCBnZGJfYnl0ZSAq KTsKKwogc3RhdGljIHN0cnVjdCBhYmJyZXZfaW5mbyAqcGVla19kaWVfYWJi cmV2IChnZGJfYnl0ZSAqLCB1bnNpZ25lZCBpbnQgKiwKIAkJCQkJICAgIHN0 cnVjdCBkd2FyZjJfY3UgKik7CiAKQEAgLTIzMDcsNiArMjMwOSwxNCBAQCBk dzJfZ2V0X2ZpbGVfbmFtZXMgKHN0cnVjdCBvYmpmaWxlICpvYmpmCiAJCQkJ CSAgYnVmZmVyLCBidWZmZXJfc2l6ZSwKIAkJCQkJICBhYmZkKTsKIAorICAv KiBTa2lwIGR1bW15IGNvbXBpbGF0aW9uIHVuaXRzLiAgKi8KKyAgaWYgKGlu Zm9fcHRyID49IGJ1ZmZlciArIGJ1ZmZlcl9zaXplCisgICAgICB8fCBwZWVr X2FiYnJldl9jb2RlIChhYmZkLCBpbmZvX3B0cikgPT0gMCkKKyAgICB7Cisg ICAgICBkb19jbGVhbnVwcyAoY2xlYW51cHMpOworICAgICAgcmV0dXJuIE5V TEw7CisgICAgfQorCiAgIHRoaXNfY3UtPmN1ID0gJmN1OwogICBjdS5wZXJf Y3UgPSB0aGlzX2N1OwogCkBAIC0zMjA0LDYgKzMyMTQsMTQgQEAgY3JlYXRl X2RlYnVnX3R5cGVzX2hhc2hfdGFibGUgKHN0cnVjdCBvYgogCSAgc2lnbmF0 dXJlID0gYmZkX2dldF82NCAob2JqZmlsZS0+b2JmZCwgcHRyKTsKIAkgIHB0 ciArPSA4OwogCSAgdHlwZV9vZmZzZXQgPSByZWFkX29mZnNldF8xIChvYmpm aWxlLT5vYmZkLCBwdHIsIG9mZnNldF9zaXplKTsKKwkgIHB0ciArPSAxOwor CisJICAvKiBTa2lwIGR1bW15IHR5cGUgdW5pdHMuICAqLworCSAgaWYgKHB0 ciA+PSBlbmRfcHRyIHx8IHBlZWtfYWJicmV2X2NvZGUgKG9iamZpbGUtPm9i ZmQsIHB0cikgPT0gMCkKKwkgICAgeworCSAgICAgIGluZm9fcHRyID0gaW5m b19wdHIgKyBpbml0aWFsX2xlbmd0aF9zaXplICsgbGVuZ3RoOworCSAgICAg IGNvbnRpbnVlOworCSAgICB9CiAKIAkgIHR5cGVfc2lnID0gb2JzdGFja19h bGxvYyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc2l6ZW9mICgqdHlw ZV9zaWcpKTsKIAkgIG1lbXNldCAodHlwZV9zaWcsIDAsIHNpemVvZiAoKnR5 cGVfc2lnKSk7CkBAIC0zMzU2LDYgKzMzNzQsMTYgQEAgcHJvY2Vzc19wc3lt dGFiX2NvbXBfdW5pdCAoc3RydWN0IG9iamZpbAogCQkJCQkgIGJ1ZmZlciwg YnVmZmVyX3NpemUsCiAJCQkJCSAgYWJmZCk7CiAKKyAgLyogU2tpcCBkdW1t eSBjb21waWxhdGlvbiB1bml0cy4gICovCisgIGlmIChpbmZvX3B0ciA+PSBi dWZmZXIgKyBidWZmZXJfc2l6ZQorICAgICAgfHwgcGVla19hYmJyZXZfY29k ZSAoYWJmZCwgaW5mb19wdHIpID09IDApCisgICAgeworICAgICAgaW5mb19w dHIgPSAoYmVnX29mX2NvbXBfdW5pdCArIGN1LmhlYWRlci5sZW5ndGgKKwkJ ICArIGN1LmhlYWRlci5pbml0aWFsX2xlbmd0aF9zaXplKTsKKyAgICAgIGRv X2NsZWFudXBzIChiYWNrX3RvX2lubmVyKTsKKyAgICAgIHJldHVybiBpbmZv X3B0cjsKKyAgICB9CisKICAgY3UubGlzdF9pbl9zY29wZSA9ICZmaWxlX3N5 bWJvbHM7CiAKICAgLyogSWYgdGhpcyBjb21waWxhdGlvbiB1bml0IHdhcyBh bHJlYWR5IHJlYWQgaW4sIGZyZWUgdGhlCkBAIC0zNjQ0LDYgKzM2NzIsMTUg QEAgbG9hZF9wYXJ0aWFsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZQog CQkJCQkgICAgICBkd2FyZjJfcGVyX29iamZpbGUtPmluZm8uc2l6ZSwKIAkJ CQkJICAgICAgYWJmZCk7CiAKKyAgICAgIC8qIFNraXAgZHVtbXkgY29tcGls YXRpb24gdW5pdHMuICAqLworICAgICAgaWYgKGluZm9fcHRyID49IChkd2Fy ZjJfcGVyX29iamZpbGUtPmluZm8uYnVmZmVyCisJCSAgICAgICArIGR3YXJm Ml9wZXJfb2JqZmlsZS0+aW5mby5zaXplKQorCSAgfHwgcGVla19hYmJyZXZf Y29kZSAoYWJmZCwgaW5mb19wdHIpID09IDApCisJeworCSAgZG9fY2xlYW51 cHMgKGZyZWVfY3VfY2xlYW51cCk7CisJICByZXR1cm47CisJfQorCiAgICAg ICAvKiBMaW5rIHRoaXMgY29tcGlsYXRpb24gdW5pdCBpbnRvIHRoZSBjb21w aWxhdGlvbiB1bml0IHRyZWUuICAqLwogICAgICAgdGhpc19jdS0+Y3UgPSBj dTsKICAgICAgIGN1LT5wZXJfY3UgPSB0aGlzX2N1OwpAQCAtNDI1Niw2ICs0 MjkzLDE1IEBAIGFkZF9wYXJ0aWFsX2VudW1lcmF0aW9uIChzdHJ1Y3QgcGFy dGlhbF8KICAgICB9CiB9CiAKKy8qIFJldHVybiB0aGUgaW5pdGlhbCB1bGVi MTI4IGluIHRoZSBkaWUgYXQgSU5GT19QVFIuICAqLworCitzdGF0aWMgdW5z aWduZWQgaW50CitwZWVrX2FiYnJldl9jb2RlIChiZmQgKmFiZmQsIGdkYl9i eXRlICppbmZvX3B0cikKK3sKKyAgdW5zaWduZWQgaW50IGJ5dGVzX3JlYWQ7 CisgIHJldHVybiByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgaW5mb19w dHIsICZieXRlc19yZWFkKTsKK30KKwogLyogUmVhZCB0aGUgaW5pdGlhbCB1 bGViMTI4IGluIHRoZSBkaWUgYXQgSU5GT19QVFIgaW4gY29tcGlsYXRpb24g dW5pdCBDVS4KICAgIFJldHVybiB0aGUgY29ycmVzcG9uZGluZyBhYmJyZXYs IG9yIE5VTEwgaWYgdGhlIG51bWJlciBpcyB6ZXJvIChpbmRpY2F0aW5nCiAg ICBhbiBlbXB0eSBESUUpLiAgSW4gZWl0aGVyIGNhc2UgKkJZVEVTX1JFQUQg d2lsbCBiZSBzZXQgdG8gdGhlIGxlbmd0aCBvZgpAQCAtNDY0MCw2ICs0Njg2 LDE1IEBAIGxvYWRfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVy X2MKICAgICAgIC8qIFJlYWQgaW4gdGhlIGNvbXBfdW5pdCBoZWFkZXIuICAq LwogICAgICAgaW5mb19wdHIgPSByZWFkX2NvbXBfdW5pdF9oZWFkICgmY3Ut PmhlYWRlciwgaW5mb19wdHIsIGFiZmQpOwogCisgICAgICAvKiBTa2lwIGR1 bW15IGNvbXBpbGF0aW9uIHVuaXRzLiAgKi8KKyAgICAgIGlmIChpbmZvX3B0 ciA+PSAoZHdhcmYyX3Blcl9vYmpmaWxlLT5pbmZvLmJ1ZmZlcgorCQkgICAg ICAgKyBkd2FyZjJfcGVyX29iamZpbGUtPmluZm8uc2l6ZSkKKwkgIHx8IHBl ZWtfYWJicmV2X2NvZGUgKGFiZmQsIGluZm9fcHRyKSA9PSAwKQorCXsKKwkg IGRvX2NsZWFudXBzIChmcmVlX2N1X2NsZWFudXApOworCSAgcmV0dXJuOwor CX0KKwogICAgICAgLyogQ29tcGxldGUgdGhlIGN1X2hlYWRlci4gICovCiAg ICAgICBjdS0+aGVhZGVyLm9mZnNldCA9IG9mZnNldDsKICAgICAgIGN1LT5o ZWFkZXIuZmlyc3RfZGllX29mZnNldCA9IGluZm9fcHRyIC0gYmVnX29mX2Nv bXBfdW5pdDsK --00504501764caba2c604af9bf1e0--