[Lldb-commits] [PATCH] D35784: [LLD][MIPS] Fix Address::GetAddressClass() to return correct AddressClass based on the load address

Greg Clayton via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Jul 25 09:06:54 PDT 2017


clayborg added a comment.

Looking at an ELF file with DWARF, I see:

  (lldb) image dump sections 
  Dumping sections for 1 modules.
  Sections for '/Volumes/android/aosp/out/target/product/generic/symbols/system/lib/libart.so' (arm):
    SectID     Type             File Address                             Perm File Off.  File Size  Flags      Section Name
    ---------- ---------------- ---------------------------------------  ---- ---------- ---------- ---------- ----------------------------
    0x00000001 regular                                                   ---  0x00000000 0x00000000 0x00000000 libart.so.
    0x00000002 regular          [0x0000000000000154-0x0000000000000167)  r--  0x00000154 0x00000013 0x00000002 libart.so..interp
    0x00000003 elf-dynamic-symbols [0x0000000000000168-0x0000000000010d18)  r--  0x00000168 0x00010bb0 0x00000002 libart.so..dynsym
    0x00000004 regular          [0x0000000000010d18-0x000000000005228f)  r--  0x00010d18 0x00041577 0x00000002 libart.so..dynstr
    0x00000005 regular          [0x0000000000052290-0x000000000005a590)  r--  0x00052290 0x00008300 0x00000002 libart.so..hash
    0x00000006 elf-relocation-entries [0x000000000005a590-0x0000000000067870)  r--  0x0005a590 0x0000d2e0 0x00000002 libart.so..rel.dyn
    0x00000007 elf-relocation-entries [0x0000000000067870-0x0000000000068398)  r--  0x00067870 0x00000b28 0x00000002 libart.so..rel.plt
    0x00000008 regular          [0x0000000000068398-0x0000000000069468)  r-x  0x00068398 0x000010d0 0x00000006 libart.so..plt
    0x00000009 code             [0x0000000000069470-0x00000000002a94f8)  r-x  0x00069470 0x00240088 0x00000006 libart.so..text
    0x0000000a ARM.exidx        [0x00000000002a94f8-0x00000000002b12d0)  r--  0x002a94f8 0x00007dd8 0x00000082 libart.so..ARM.exidx
    0x0000000b ARM.extab        [0x00000000002b12d0-0x00000000002b1e44)  r--  0x002b12d0 0x00000b74 0x00000002 libart.so..ARM.extab
    0x0000000c regular          [0x00000000002b1e48-0x00000000002e39e4)  r--  0x002b1e48 0x00031b9c 0x00000002 libart.so..rodata
    0x0000000d eh-frame         [0x00000000002e39e4-0x00000000002e5fa8)  r--  0x002e39e4 0x000025c4 0x00000002 libart.so..eh_frame
    0x0000000e regular          [0x00000000002e5fa8-0x00000000002e63d4)  r--  0x002e5fa8 0x0000042c 0x00000002 libart.so..eh_frame_hdr
    0x0000000f regular          [0x00000000002e7e38-0x00000000002eaa24)  rw-  0x002e6e38 0x00002bec 0x00000003 libart.so..data.rel.ro.local
    0x00000010 regular          [0x00000000002eaa24-0x00000000002eaa28)  rw-  0x002e9a24 0x00000004 0x00000003 libart.so..fini_array
    0x00000011 regular          [0x00000000002eaa28-0x00000000002ee370)  rw-  0x002e9a28 0x00003948 0x00000003 libart.so..data.rel.ro
    0x00000012 regular          [0x00000000002ee370-0x00000000002ee3c0)  rw-  0x002ed370 0x00000050 0x00000003 libart.so..init_array
    0x00000013 elf-dynamic-link-info [0x00000000002ee3c0-0x00000000002ee4f0)  rw-  0x002ed3c0 0x00000130 0x00000003 libart.so..dynamic
    0x00000014 regular          [0x00000000002ee4f4-0x00000000002ef000)  rw-  0x002ed4f4 0x00000b0c 0x00000003 libart.so..got
    0x00000015 data             [0x00000000002ef000-0x00000000002ef8c4)  rw-  0x002ee000 0x000008c4 0x00000003 libart.so..data
    0x00000016 zero-fill        [0x00000000002ef8c8-0x00000000002f11fc)  rw-  0x002ee8c8 0x00000000 0x00000003 libart.so..bss
    0x00000017 regular                                                   ---  0x002ee8c4 0x00000010 0x00000030 libart.so..comment
    0x00000018 dwarf-line                                                ---  0x002ee8d4 0x002c10eb 0x00000000 libart.so..debug_line
    0x00000019 dwarf-info                                                ---  0x005af9bf 0x054eb22a 0x00000000 libart.so..debug_info
    0x0000001a dwarf-abbrev                                              ---  0x05a9abe9 0x000f5e5b 0x00000000 libart.so..debug_abbrev
    0x0000001b dwarf-aranges                                             ---  0x05b90a48 0x00011960 0x00000000 libart.so..debug_aranges
    0x0000001c dwarf-loc                                                 ---  0x05ba23a8 0x00a0d623 0x00000000 libart.so..debug_loc
    0x0000001d dwarf-ranges                                              ---  0x065af9cb 0x0029c7b0 0x00000000 libart.so..debug_ranges
    0x0000001e dwarf-macro                                               ---  0x0684c17b 0x000ada15 0x00000000 libart.so..debug_macro
    0x0000001f dwarf-str                                                 ---  0x068f9b90 0x004a45e9 0x00000030 libart.so..debug_str
    0x00000020 dwarf-frame                                               ---  0x06d9e17c 0x0003fc6c 0x00000000 libart.so..debug_frame
    0x00000021 regular                                                   ---  0x06dddde8 0x0000001c 0x00000000 libart.so..note.gnu.gold-version
    0x00000022 regular                                                   ---  0x06ddde04 0x00000038 0x00000000 libart.so..ARM.attributes
    0x00000023 elf-symbol-table                                          ---  0x06ddde3c 0x00056c30 0x00000000 libart.so..symtab
    0x00000024 regular                                                   ---  0x06e34a6c 0x0006c9e6 0x00000000 libart.so..strtab
    0x00000025 regular                                                   ---  0x06ea1452 0x0000017b 0x00000000 libart.so..shstrtab

Note how all DWARF sections have no file address. They are known to not be valid addresses. Are you seeing something different with your ELF file? Or do you have two ELF files? One without symbols and one with? The output of "image dump sections" should look like above where no DWARF sections have anything valid in the "File Address" column.


https://reviews.llvm.org/D35784





More information about the lldb-commits mailing list