Debugging 构建Linux内核映像(vmlinux)以使用DWARF3而不是DWARF4

Debugging 构建Linux内核映像(vmlinux)以使用DWARF3而不是DWARF4,debugging,dwarf,gnu-toolchain,trace32,lauterbach,Debugging,Dwarf,Gnu Toolchain,Trace32,Lauterbach,我正在从事一个依赖于Lauterbach JTAG调试器硬件和软件的项目,对目标JTAG电缆的支持于2011年7月结束。我们在omap2处理器上使用Linux 2.6.33内核。我们正在使用GCC4.9.2构建内核映像,但不确定bintools的版本 对于那些不熟悉Lauterbach如何许可其软件的人,调试吊舱和目标之间的目标电缆连接带有支持合同日期。可使用支持期结束之前和之前的任何版本的Lauterbach Trace-32软件,但电缆支持期结束之后的任何版本均不得使用,每次会话演示30分钟

我正在从事一个依赖于Lauterbach JTAG调试器硬件和软件的项目,对目标JTAG电缆的支持于2011年7月结束。我们在omap2处理器上使用Linux 2.6.33内核。我们正在使用GCC4.9.2构建内核映像,但不确定bintools的版本

对于那些不熟悉Lauterbach如何许可其软件的人,调试吊舱和目标之间的目标电缆连接带有支持合同日期。可使用支持期结束之前和之前的任何版本的Lauterbach Trace-32软件,但电缆支持期结束之后的任何版本均不得使用,每次会话演示30分钟除外。我们正在通过我们的采购流程来续签电缆的支持合同,但在这之前可能需要几个月的时间,我们一直坚持现有的

我们使用的工具链生成的调试信息对于2017年7月之前发布的最后一个版本的Trace-32调试器软件来说似乎太新了。尝试使用以下命令加载内核映像vmlinux的符号:

data.load.elf \\path\to\vmlinux /nocode
失败,消息类似于:

error: entry near offset 5432100. in file \\path\to\vmlinux (use DUMP)
当然,最简单的解决方案是更新到Trace-32软件的第一个版本,该软件支持我们的工具链产生的任何ELF/DWARF组合。我们知道最新的版本是可行的,但我们的电缆不支持该版本,而且在我们的采购人员确定这是测试设备还是软件之前,不会支持该版本,因为他们的预算不同

在接下来的几个月里,我们需要一个变通办法。我正在寻找以下内容之一:

告诉工具链生成与调试器软件兼容的调试信息的某种方法 为了将我们的工具链生成的vmlinux ELF/DWARF文件转换为与Trace-32版本兼容的早期ELF/DWARF格式版本,我们不得不使用R.2010.11.000028724。 这个问题还有其他我们没有想到的解决方案吗 我提前感谢大家的帮助

编辑:我不能100%确定工具链是在生成DWARF3还是DWARF4,所以我可能需要制作一个ELF/DWARF2 vmlinux

你有三个想法:

我建议尝试GCC的选项:-g-gdwarf-2-gstrict dwarf,或者您可以尝试GCC版本4.4或更高版本,这似乎适合2011年。 我想你没有任何改变可以把精灵的矮人信息转移到别的东西上。或者至少不是以一种简单的方式。 访问劳特巴赫网站。在“支持”>“注册”中,您可以申请一个月的临时维护密钥。这应该给你的销售人员时间去买一把新钥匙。
不确定为什么会投反对票;这不是一个琐碎的或经常被问到的问题。。。