Hi,
I want to demangle variable names using the dem470.exe application but it is not working.
The dem470.exe works perfectly with mangle function name (starting with _ZN... for example). However, when it comes to variable names (starting with __b_N... for example) it ignores them.
Here's what I'm doing:
- I compiled my code into a .out file.
- I used the ofd6x.exe application to extract the dwarf data section (ofd6x -g -x --dwarf_display=none,dinfo,types -o=Mo4_v1_0_0_0_temp.xml Mo4_v1_0_0_0.out)
- I used the dem470.exe to demangle all the names (dem470.exe --abi=eabi -o res1.txt Mo4_v1_0_0_0_temp.xml)
And I can see that the following subprogram name was properly demangled (DW_AT_TI_symbol_name):
<die id="0x3b:0x21c70d">
<tag>DW_TAG_subprogram</tag>
<attribute>
<type>DW_AT_name</type>
<form>DW_FORM_strp</form>
<value>
<string>DrvGioMibSpi</string>
</value>
</attribute>
<attribute>
<type>DW_AT_accessibility</type>
<form>DW_FORM_data1</form>
<value>
<const>0x1</const>
</value>
</attribute>
<attribute>
<type>DW_AT_declaration</type>
<form>DW_FORM_flag</form>
<value>
<flag>true</flag>
</value>
</attribute>
<attribute>
<type>DW_AT_TI_symbol_name</type>
<form>DW_FORM_strp</form>
<value>
<string>TMS570::DrvGioMibSpi::DrvGioMibSpi(TMS570::DrvGioMibSpi::MibSpiGioIdEnum)</string>
</value>
</attribute>
However the variable name was not demangled (DW_AT_TI_symbol_name):
<die id="0x3b:0x21c6bd">
<tag>DW_TAG_member</tag>
<attribute>
<type>DW_AT_name</type>
<form>DW_FORM_strp</form>
<value>
<string>__b_N6TMS57012InterfaceGioE</string>
</value>
</attribute>
<attribute>
<type>DW_AT_accessibility</type>
<form>DW_FORM_data1</form>
<value>
<const>0x1</const>
</value>
</attribute>
<attribute>
<type>DW_AT_data_member_location</type>
<form>DW_FORM_block1</form>
<value>
<block>DW_OP_plus_uconst 0x0</block>
</value>
</attribute>
<attribute>
<type>DW_AT_decl_column</type>
<form>DW_FORM_data1</form>
<value>
<const>0x7</const>
</value>
</attribute>
<attribute>
<type>DW_AT_decl_file</type>
<form>DW_FORM_data1</form>
<value>
<const>0x1</const>
</value>
</attribute>
<attribute>
<type>DW_AT_decl_line</type>
<form>DW_FORM_data1</form>
<value>
<const>0x1e</const>
</value>
</attribute>
<attribute>
<type>DW_AT_type</type>
<form>DW_FORM_ref_addr</form>
<value>
<ref idref="0x3b:0x1e681f"/>
</value>
</attribute>
<attribute>
<type>DW_AT_TI_symbol_name</type>
<form>DW_FORM_strp</form>
<value>
<string>__b_N6TMS57012InterfaceGioE</string>
</value>
</attribute>
</die>
Could you tell me if this is a bug? How may I demangle these names (there is so much rules I would prefer to use a software that does everything)?
Thanks.
David.