This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28377D: Parse Dwarf debugging information in COFF format .out files produced by CCS

Part Number: TMS320F28377D

Hi Team,

My customer need to statically parse the .out file and obtain the addresses of all global variable structures and their members.

CCS version is 8.3. .out file format is COFF.

Is there any tool or example code for parsing the Dwarf debugging information in the .out file?
The variable name and address need to be printed out.
The effect is as follows:

addr    size   symbol

0010F2E6 04 AcMeasData.OldHWDataGridVtgSumAbs.s32LastSpotVal[0]
0010F2E8 04 AcMeasData.OldHWDataGridVtgSumAbs.s32LastSpotVal[1]
0010F2EA 04 AcMeasData.OldHWDataInvtPwr.OldHWDataInvtPwr[0].s32HalfWaveAvgSum
0010F2EC 04 AcMeasData.OldHWDataInvtPwr.OldHWDataInvtPwr[0].s32LastSpotVal[0]
0010F2EE 04 AcMeasData.OldHWDataInvtPwr.OldHWDataInvtPwr[0].s32LastSpotVal[1]
0010F2F0 04 AcMeasData.OldHWDataInvtPwr.OldHWDataInvtPwr[1].s32HalfWaveAvgSum
0010F2F2 04 AcMeasData.OldHWDataInvtPwr.OldHWDataInvtPwr[1].s32LastSpotVal[0]
0010F2F4 04 AcMeasData.OldHWDataInvtPwr.OldHWDataInvtPwr[1].s32LastSpotVal[1]
0010F2F6 04 AcMeasData.OldHWDataInvtPwr.OldHWDataInvtPwr[2].s32HalfWaveAvgSum
0010F2F8 04 AcMeasData.OldHWDataInvtPwr.OldHWDataInvtPwr[2].s32LastSpotVal[0]
0010F2FA 04 AcMeasData.OldHWDataInvtPwr.OldHWDataInvtPwr[2].s32LastSpotVal[1]
0010F2FC 04 AcMeasData.OldHWDataLoadPwr.OldHWDataLoadPwr[0].s32HalfWaveAvgSum
0010F2FE 04 AcMeasData.OldHWDataLoadPwr.OldHWDataLoadPwr[0].s32LastSpotVal[0]
0010F300 04 AcMeasData.OldHWDataLoadPwr.OldHWDataLoadPwr[0].s32LastSpotVal[1]
0010F302 04 AcMeasData.OldHWDataLoadPwr.OldHWDataLoadPwr[1].s32HalfWaveAvgSum
0010F304 04 AcMeasData.OldHWDataLoadPwr.OldHWDataLoadPwr[1].s32LastSpotVal[0]
0010F306 04 AcMeasData.OldHWDataLoadPwr.OldHWDataLoadPwr[1].s32LastSpotVal[1]
0010F308 04 AcMeasData.OldHWDataLoadPwr.OldHWDataLoadPwr[2].s32HalfWaveAvgSum
0010F30A 04 AcMeasData.OldHWDataLoadPwr.OldHWDataLoadPwr[2].s32LastSpotVal[0]
0010F30C 04 AcMeasData.OldHWDataLoadPwr.OldHWDataLoadPwr[2].s32LastSpotVal[1]
0010F30E 04 AcMeasData.OldHWDataGridPwr.OldHWDataGridPwr[0].s32HalfWaveAvgSum
0010F310 04 AcMeasData.OldHWDataGridPwr.OldHWDataGridPwr[0].s32LastSpotVal[0]
0010F312 04 AcMeasData.OldHWDataGridPwr.OldHWDataGridPwr[0].s32LastSpotVal[1]
0010F314 04 AcMeasData.OldHWDataGridPwr.OldHWDataGridPwr[1].s32HalfWaveAvgSum
0010F316 04 AcMeasData.OldHWDataGridPwr.OldHWDataGridPwr[1].s32LastSpotVal[0]
0010F318 04 AcMeasData.OldHWDataGridPwr.OldHWDataGridPwr[1].s32LastSpotVal[1]
0010F31A 04 AcMeasData.OldHWDataGridPwr.OldHWDataGridPwr[2].s32HalfWaveAvgSum
0010F31C 04 AcMeasData.OldHWDataGridPwr.OldHWDataGridPwr[2].s32LastSpotVal[0]
0010F31E 04 AcMeasData.OldHWDataGridPwr.OldHWDataGridPwr[2].s32LastSpotVal[1]
0010F320 04 AcMeasData.CommonCalcData.f32CorTime
0010F322 04 AcMeasData.CommonCalcData.f32GridFreq
0010F324 02 AcMeasData.u16LastAvgSumCnt
0010F340 04 gSystemData.System.dSerNo
0010F342 04 gSystemData.System.dDevType
0010F344 04 gSystemData.System.dDevTypeIdx
0010F346 04 gSystemData.System.wDeviceID
0010F348 02 gSystemData.System.wGridVol_Std
0010F34A 04 gSystemData.System.fNorminalDCLink
0010F34C 02 gSystemData.System.wNorminalPower
0010F34D 02 gSystemData.System.wNorminalGridVolt
0010F34E 02 gSystemData.System.wOverLoadLimit
0010F34F 02 gSystemData.System.wCT_Coefficient
0010F350 02 gSystemData.System.wPeak_Curr_Limit
0010F351 02 gSystemData.System.wModuleNum
0010F352 02 gSystemData.System.DerateReason[0]

--

Thanks & Regards

Yale

  • Hello -- there are some binary utilities included in the toolchain that you may want to explore.  The object file dump utility (ofd2000) will allow you to dump debug information and placement information that might be useful.  Also, the absolute lister may help you identify placement of structs and individual members (abs2000).  The object file dump utility has the ability to dump XML as well, which may improve parseability.  I would recommend looking through the C28x assembly tools manual at the relevant subchapters for more information about these.

    Of course, the linker map file will also show you placement information, but probably not as granular as you'd like (struct members).