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.

dis470 and linked libraries (4.6.4)



Is it normal that dis470 does not show symbols from linked libraries? Libraries have full DWARF symbolic information and linker lists entries in map file. For instance, linker will show

0000347d   Port_Init

but dis470 will not

00347c:               .thumb
00347c: B508             PUSH            {R3, LR}
00347e: 4943             LDR             R1, $C$CON1 [0x358c]
003480: 6008             STR             R0, [R1]

ofd470 will show symbols as well

    4150 Port_Init       0x0000347d defined   .text           global  function

...

     53701  "Port_Init"                                                  

What can be done to make dis470 to show symbols from linked libraries?

Eugene

  • The actual address of Port_Init is at 0x0000347C but after linking the least significant bit is set because it is a Thumb instruction. This shows up as 0x0000347D in the symbol table.  This looks like a disassembler issue where the least significant bit of the address is not cleared when doing a Thumb  function symbol lookup.  

     

    I've submitted a Clear Quest bug report (SDSCM00037825) to get this addressed. Unfortunately I do not have a workaround.

     

    Regards,

    John

  • John,

    The issue is twofold. Not only disassembler has  the problem it also breaks Code Composer. Disassembly window can not find any of the symbols because they do not exist in the OUT file. You'd better give the resolution of SDSCM00037825 some priority. It affects multiple tools.

    The workaround I was able to use is to compile library code with --gen_func_subsections. This switch makes function entries visible. However it will only work in my specific case. If libraries are from third parties then, as you said, there is no workaround.

    Regards,

    Eugene

  • Eugene,

    As you requested, I set the severity in the report  to 'Major' and made a note to ensure the fix is integrated into Code Composer.

    Regards,

    John