首页 > 解决方案 > 如何最好地转换 linux ELF 文件中的源路径以在 Windows 上调试 ELF 文件

问题描述

我计划在基于 ARM(Cortex-R5 BIG ENDIAN)的嵌入式系统上运行 U-boot。U-Boot 将作为二级引导加载程序运行在使用 IAR Embedded Workbench for ARM (EWARM) 开发的一级引导加载程序之上。U-Boot 建立在 Linux 主机上。第一级引导加载程序是在 Windows 主机上开发的。

我只是设法使用 EWARM 下载了 U-Boot ELF 文件,但没有源代码调试。没有复制源文件,但是ELF文件当然包含linux风格的路径。

是否有任何工具可以将具有 linux 样式路径的 ELF 文件转换为具有 Windows 样式路径的 ELF 文件?

"objcopy --only-keep-debug foo foo.dbg" 获取一个完整的 ELF 文件并将调试内容复制到 foo.dbg objcopy --strip-debug foo 然后剥离 ELF 文件。objcopy --add-gnu-debuglink=foo.dbg foo 将连接添加到调试信息。据我所知,没有 objcopy 选项可以转换路径。

是否有任何工具可以将完整的目录树复制到 NTFS 处理符号链接?

由于这仅用于源代码级调试,因此可以复制而不是跟随链接。我最好的想法是使用 SAMBA 通过网络复制文件系统。没有尝试过,但我怀疑 SAMBA 会忽略链接而只是复制。

Windows 计算机连接到公司网络,VPN 连接禁用所有其他网络,所以我必须为此使用第三台计算机......也许我可以将 SAMBA 安装在自己的 linux 机器上......想法赞赏。

标签: debuggingarmelfu-bootcortex-m

解决方案


是否有任何工具可以将完整的目录树复制到 NTFS 处理符号链接?

你有两个选择:

  1. 将目录复制到 FAT 分区。符号链接将被实际文件替换。Linux 和 Windows 都可以读写 FAT。
  2. 如果您在同一台计算机上:在 Linux 中挂载 NTFS 分区。如果 Windows 使用 bitlocker,您将需要完整的密钥(PIN 不够)。

推荐阅读