可以在X86机器中加载核心文件(由ARM处理器生成)? 我基于ARM架构的嵌入式设备中的内存约束。 一个程序在某个时候崩溃并生成了核心文件。现在,我无法像我一样将此核心文件加载到同一设备中...

问题描述 投票:0回答:2
-target臂

可以在Linux机器(Ubuntu,X86 Machine)上加载此核心文件以查找崩溃位置? yes:您需要二进制二进制文件及其使用的任何共享库,

core
gdb cross-compiling coredump
2个回答
2
投票
ubuntu提供
GDB-Multiarch软件包

,应该只能使用。类似:

gdb -iex 'set sysroot /path/to/embedded/root' /path/to/exe /path/to/core (gdb) where


我知道这很旧,但是解决此问题的人可能会觉得这个工作流程很有用。

i在完全相同的环境中工作,并且由于内存约束而围绕完全相同的问题进行了工作。 首先,您需要确保将调试符号保留在某个地方。 执行ARM-LINUX-GNUEABIHF-READELF -N [COREFILE]以获取在运行时加载的库列表。 将这些图书馆从装载到您的控制器上的任何文物中都包含在这些文物中。

搜索相应的调试文件。因此,在我的工作代码库中,对于每个xyz。使找到一对文件非常容易。我还使用buildID来确认调试文件与原始.SO文件一起使用。然后,您可以使用EU-Unstrip从XYZ.SO.Debug文件中获取调试符号,然后将它们插入原始Xy.so文件中。诸如libst
之类的东西
然后您必须获取代码库的副本,然后将其恢复为构建的代码状态。我在git上,所以我使用rebase。

0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.