TRACE32如何知道从ELF加载的全局符号的类型?

时间:2015-02-25 19:26:38

标签: types elf trace32

我有一种奇怪的行为:

我加载了一个包含两个全局变量的ELF文件:E1和S1

这两个变量都声明为“int”,但TRACE32将E1视为FLOAT,S1视为int。

我尝试使用“readelf”,但它只说E1和S1是OBJECT。

T32如何找到这些信息?

1 个答案:

答案 0 :(得分:1)

  

我尝试使用" readelf"但它只说E1和S1是OBJECT。

可能这样做了:readelf -s elf-file(一般来说,在提问时,最好说完全你做了什么)。< / p>

请尝试使用readelf -wi elf-file。你可能会看到类似的东西:

<1><57>: Abbrev Number: 3 (DW_TAG_base_type)
    <58>   DW_AT_byte_size   : 4
    <59>   DW_AT_encoding    : 5        (signed)
    <5a>   DW_AT_name        : int
...
<1><af>: Abbrev Number: 6 (DW_TAG_variable)
    <b0>   DW_AT_name        : E1
    <b3>   DW_AT_decl_file   : 1
    <b4>   DW_AT_decl_line   : 4
    <b5>   DW_AT_type        : <0x57>
    <b9>   DW_AT_external    : 1
    <b9>   DW_AT_location    : 9 byte block: 3 50 10 60 0 0 0 0 0       (DW_OP_addr: 601050)
 <1><c3>: Abbrev Number: 6 (DW_TAG_variable)
    <c4>   DW_AT_name        : S1
    <c7>   DW_AT_decl_file   : 1
    <c8>   DW_AT_decl_line   : 5
    <c9>   DW_AT_type        : <0xd7>
    <cd>   DW_AT_external    : 1
    <cd>   DW_AT_location    : 9 byte block: 3 4c 10 60 0 0 0 0 0       (DW_OP_addr: 60104c)
 <1><d7>: Abbrev Number: 2 (DW_TAG_base_type)
    <d8>   DW_AT_byte_size   : 4
    <d9>   DW_AT_encoding    : 4        (float)
    <da>   DW_AT_name        : (indirect string, offset: 0x9d): float

请注意E1 DW_AT_type 0x57 int S1 0xd7 float类型{{1}} {{1}}