Part Number:MSP432P401R
Tool/software: TI C/C++ Compiler
I have an object file built with TI Arm compiler 16.9.4 LTS. I am using armofd from the same release to extract .debug_info and .debug_abbrev sections. DIE for a variable is missing the attribute DW_AT_type, which should be there according to the abbreviations table. DIE for a variable ti_posix_tirtos_Settings is as follows:
----------------------------
DIE Table at Offset 0004983d
----------------------------
Length: 0x12e
Version: 3
.debug_abbrev Offset: 36817
Address Size: 4
...
0004992d 2 DW_TAG_variable (.data)
0004992e DW_AT_location DW_OP_addr 0x2000af3c
00049934 DW_AT_name ti_posix_tirtos_Settings
0004994d DW_AT_decl_column 41
0004994e DW_AT_decl_file 1
0004994f DW_AT_decl_line 74
00049950 DW_AT_external true
00049951 DW_AT_TI_symbol_name ti_posix_tirtos_Settings
The offset in the abbreviation table is 36817 (0x8FD1). The abbreviation table entry for that offset and the code is:
--------------------------------------
Abbreviations Table at Offset 0x8fd1
--------------------------------------
...
0x8fe3 2 no DW_TAG_variable
0x8fe6 DW_AT_location DW_FORM_block1
0x8fe8 DW_AT_name DW_FORM_string
0x8fea DW_AT_decl_column DW_FORM_data1
0x8fec DW_AT_decl_file DW_FORM_data1
0x8fee DW_AT_decl_line DW_FORM_data1
0x8ff0 DW_AT_external DW_FORM_flag
0x8ff2 DW_AT_type DW_FORM_ref_addr
0x8ff4 DW_AT_TI_symbol_name DW_FORM_string
I am parsing the DIE for that variable using the abbreviations table, and I am getting a type value that doesn't correspond to any DIE. I have attached the object file. Is there anything else needed to debug the problem?
(Please visit the site to view this file)