Hello All,
I have an AXF file, built with Compiler 6.16.
It is very simple example, not much bugger than a 'hello world' but, I cannot get a sensible range list for the second compilation unit.
It has 3 ranges (DW_AT_ranges) referenced in .debug_info:
000022: DW_AT_ranges 0x0000219: DW_AT_ranges 0x68000f07: DW_AT_ranges 0x90
They are each in a DW_TAG_compile_unit and are accompanied by a DW_AT_low_pc (value 0) and no DW_AT_high_pc.
It has the following ranges defined in .debug_ranges:
** Section #66 '.debug_ranges' (SHT_PROGBITS) Size : 168 bytes
** Section #66 '.debug_ranges' (SHT_PROGBITS)
Size : 168 bytes
0x000000 [0x100060e0 : 0x100060e4]0x000008 [0x10006104 : 0x10006110]0x000010 [0x100060fc : 0x10006100]0x000018 [0x100060e4 : 0x100060e8]0x000020 [0x100060f8 : 0x100060fc]0x000028 [0x100060d8 : 0x100060dc]0x000030 [0x100061d0 : 0x100061d4]0x000038 [0x10006110 : 0x10006114]0x000040 [0x100060dc : 0x100060e0]0x000048 [0x10006100 : 0x10006104]0x000050 [0x10006114 : 0x10006118]0x000058 [0x100060e8 : 0x100060f6]0x000060 End List0x000068 End List0x000070 [0x10006118 : 0x100061d0]0x000078 [0x100061f8 : 0x10006202]0x000080 [0x100061d4 : 0x100061f6]0x000088 End List0x000090 [0x10006204 : 0x10006208]0x000098 [0x10006208 : 0x10006268]0x0000a0 End List
0x000000 [0x100060e0 : 0x100060e4]
0x000008 [0x10006104 : 0x10006110]
0x000010 [0x100060fc : 0x10006100]
0x000018 [0x100060e4 : 0x100060e8]
0x000020 [0x100060f8 : 0x100060fc]
0x000028 [0x100060d8 : 0x100060dc]
0x000030 [0x100061d0 : 0x100061d4]
0x000038 [0x10006110 : 0x10006114]
0x000040 [0x100060dc : 0x100060e0]
0x000048 [0x10006100 : 0x10006104]
0x000050 [0x10006114 : 0x10006118]
0x000058 [0x100060e8 : 0x100060f6]
0x000060 End List
0x000068 End List
0x000070 [0x10006118 : 0x100061d0]
0x000078 [0x100061f8 : 0x10006202]
0x000080 [0x100061d4 : 0x100061f6]
0x000088 End List
0x000090 [0x10006204 : 0x10006208]
0x000098 [0x10006208 : 0x10006268]
0x0000a0 End List
The .debug_ranges section looks wrong:
The ELF file header:
Machine class: ELFCLASS32 (32-bit) Data encoding: ELFDATA2LSB (Little endian) Header version: EV_CURRENT (Current version) Operating System ABI: none ABI Version: 0 File Type: ET_EXEC (Executable) (2) Machine: EM_ARM (ARM)
Machine class: ELFCLASS32 (32-bit)
Data encoding: ELFDATA2LSB (Little endian)
Header version: EV_CURRENT (Current version)
Operating System ABI: none
ABI Version: 0
File Type: ET_EXEC (Executable) (2)
Machine: EM_ARM (ARM)
Image Entry point: 0x00000000 Flags: EF_ARM_HASENTRY (0x80000002)
Image Entry point: 0x00000000
Flags: EF_ARM_HASENTRY (0x80000002)
ARM ELF revision: 128 (unknown)
Conforms to Base float procedure-call standard
Built with Component: ARM Compiler 6.16 Tool: armlink [5dfeaa00]
Built with
Component: ARM Compiler 6.16 Tool: armlink [5dfeaa00]
Header size: 52 bytes (0x34) Program header entry size: 32 bytes (0x20) Section header entry size: 40 bytes (0x28)
Header size: 52 bytes (0x34)
Program header entry size: 32 bytes (0x20)
Section header entry size: 40 bytes (0x28)
Program header entries: 59 Section header entries: 73
Program header entries: 59
Section header entries: 73
Program header offset: 52 (0x00000034) Section header offset: 108068 (0x0001a624)
Program header offset: 52 (0x00000034)
Section header offset: 108068 (0x0001a624)
Section header string table index: 72
All of the above data was generated by the fromelf.exe utility.
Regards,
Mark.