【问题标题】:Trace32 command to read symbol name for a given address from the ELF FileTrace32 命令从 ELF 文件中读取给定地址的符号名称
【发布时间】:2018-10-11 11:51:27
【问题描述】:

我使用 T32 加载 bin 文件和 elf 并编写脚本从 ELF 文件中提取 Pc 、 Lr 寄存器值。现在我有了地址,例如说 PC 的地址是 0xccccdddd。现在我需要得到对应的符号。 我运行 gdb 并使用 gdb info symbol 0xccccdddd 并获得了符号名称。 但我需要知道 T32 本身是否有任何命令来获取符号名称。或者我可以从 readelf 或 objdump 等命令中获取符号名称。 提前致谢。

【问题讨论】:

    标签: gdb elf trace32


    【解决方案1】:

    打开一个窗口查看所有静态符号的命令是

    sYmbol.Browse
    

    要了解有关该窗口的更多信息,我建议您查看 TRACE32 安装中的“Training HLL 调试”(training_hll.pdf)。

    要仅获取与单个地址相关的符号,请使用 PRACTICE 函数sYmbol.Name(<addr>)。函数必须与命令一起使用。要简单地显示名称,请使用命令PRINT。

    例如:

    PRINT sYmbol.Name(P:0xccccdddd)
    

    请注意,地址偏移量必须以访问类为前缀。通常访问等级“P:”代表程序存储器,而“D:”代表数据存储器。有关更多特定于 CPU 的访问类别,请参阅“处理器架构手册”(菜单 > 帮助 > 处理器架构手册)

    【讨论】:

    • 如果我需要获取变量的符号名称,比如 PC 的符号名称。我使用 v.v pc 获取地址,然后将地址传递给 sYmbol.Name(P:address)。我怎样才能直接将变量名传递给那个
    • 写“PC”是指程序计数器寄存器还是一个名为“pc”的变量?
    • 如果你已经有了一个变量的名字,为什么要把它放在sYmbol.NAME()中呢?您期望这样做会产生什么结果?
    猜你喜欢
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多