问题场景:简单地说,我们是否有一个Trace32命令从加载到目标的ELF文件中读取符号(及其内容)?我们有这样一种特殊情况,即ELF文件的应用特定调试符号作为ELF中“.noload”部分的一部分,这意味着符号/内容是ELF文件的一部分(使用readelf -a xxxx.elf_file_name读取时可用),但不是最终生成的二进制映像的一部分,即当生成闪现到目标内存的xxx.bin时,ELF文件中的“.noload”部分被剥离掉。
任何输入
发布于 2016-11-28 11:08:32
使用命令
Data.LOAD.Elf myfile.elf [<optional address offset>] /NoCODE选项/NoCODE指示TRACE32只从您的ELF加载删除符号,而不将任何代码加载到目标。您可以使用命令sYmbol.Browse查看符号。
但是,如果使用TRACE32将应用程序加载到目标,则不必先从ELF创建二进制文件。使用TRACE32,您还可以将ELF的PROGBITS部分直接加载到目标。在这种情况下,您只需使用Data.LOAD.Elf命令而不使用/NoCODE选项(在启用闪存编程之后)。
由于您使用的是MMU,所以您可能希望使用命令SYStem.Option.MMUSPACES ON来激活逻辑内存空间ID。然后用
Data.LOAD.Elf myfile.elf <space-ID>:<offset> /NoCODE其中,“空格-ID”与MMU用于任务和“偏移”的空间ID匹配通常为零。
如果您正在嵌入式Linux上调试应用程序,则应该使用Linux的TRACE32 OS感知和Linux符号自动加载器将符号加载到正确的地址。
我认为没有任何理由需要在TRACE32内部使用“readelf”。无论如何,您可以使用命令OS.Area或OS.Command调用任何命令行程序。
https://stackoverflow.com/questions/40836941
复制相似问题