Hello,
I am working on parsing the .out files to provide necessary debug info for us to analyze our systems postmortem. I am aware of the cg_tools and am using those and related information where possible. I am looking for what dwarf tag values of 0x4086 and 0x4087 are indicative of in the .out file? I was able to find all the other TI defined tag values in these two documents:
http://focus.ti.com/lit/an/spraab5/spraab5.pdf
http://processors.wiki.ti.com/index.php/The_Impact_of_DWARF_on_TI_Object_Files_Errata_(SPRAAB5)
But as you can see the values of 0x4086 and 0x4087 are missing. They appear many times in the actual .out file, here are some samples from our tool:
abbrevCode=e obj_offset=00000a72 info_offset=0001057c remaining=24979
tag = 4086 = User Defined child = 1 = DW_CHILDREN_yes
3 = DW_AT_name 8 = c:\temp\agentemp-6\TI22410:L2:2:1295964974
2003 = DW_AT_TI_begin_file 8 = V:\spec_apps\Congo\Source\Dsp\RDebugger\src\DspTaskMonitorApp.cpp
2004 = DW_AT_TI_begin_line b = 51
2007 = DW_AT_TI_end_line b = 69
abbrevCode=f obj_offset=00000ae2 info_offset=000105ec remaining=24867
tag = 4087 = User Defined child = 0 = DW_CHILDREN_no
11 = DW_AT_low_pc 1 = 0009d43d
12 = DW_AT_high_pc 1 = 0009d47d
Unfortunately ofd6x does not decode any user defined range values for the .out files which is what I was hoping for to resolve.
From what I can determine 0x4086 always contains line numbers and a child 0x4087 that has the low and high pc. The line numbers correspond to loop structures like while or for. I am looking for the actual TI designation for these tag values in the fashion they are given in the documents above if possible. In the meantime I guess 0x4086 as DW_TAG_TI_loop_structure for 0x4086 and DW_TAG_TI_loop_begin_end will work. Thanks for your time.
0x4086 is "DW_TAG_TI_loop"
0x4087 is "DW_TAG_TI_loop_range"
"ofd6x -g" should give names to all tags that TI tools can emit, and it correctly gives names to these two tags for a simple test case. What version of ofd6x are you using?
I am using Release Version 2.20.00. All user defined range tags are showing up in ofd6x as DW_TAG_TI_reserved_1, 2, 3, etc. even with the -g option.
Here is some output:
001351d7 16 DW_TAG_TI_reserved_1 (.text)
001351d8 DW_AT_name c:\temp\agentemp-1\TI74010:L15:1:1295534706
00135204 DW_AT_TI_begin_file V:\file.cpp
0013524c DW_AT_TI_begin_line 217
0013524e DW_AT_TI_end_line 249
00135250 12 DW_TAG_TI_reserved_2 (.text)
00135251 DW_AT_low_pc 0xa265d
00135255 DW_AT_high_pc 0xa2670
00135259 12 DW_TAG_TI_reserved_2 (.text)
0013525a DW_AT_low_pc 0xa26f2
0013525e DW_AT_high_pc 0xa2713
Nathan Posey I am using Release Version 2.20.00.
I am using Release Version 2.20.00.
That's the version number for the cg_xml package. It contains (for convenience) a copy of ofd6x, which has its own version. The version of ofd6x in cg_xml 2.20.00 is 7.0.0A08284, and the version in the separate package "Optimized OFD" is 6.1.0A07115.
In any case, the problem here is that only TI-internal development versions of ofd6x decode those tags into "loop" and "loop_range". For released versions of OFD, these are given as "reserved_1" and "reserved_2"
Sorry here's the ofd6x version confirming your response:
D:\cg_xml\utils>ofd6x.exe --help
TMS320C6x Object File Display v7.0.0A08284
Tools Copyright (c) 1996-2008 Texas Instruments Incorporated
Thanks for the info on the TAG enumerations.