可以在Linux机器(Ubuntu,X86 Machine)上加载此核心文件以查找崩溃位置?
core
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。