是否可以在 x86 机器中加载核心文件(由 arm 处理器生成)?

Posted

技术标签:

【中文标题】是否可以在 x86 机器中加载核心文件(由 arm 处理器生成)?【英文标题】:Is it possible to load core file (generated by arm processor) in x86 machine? 【发布时间】:2021-03-17 19:39:16 【问题描述】:

我在基于 arm 架构的嵌入式设备中存在内存限制。 一个程序在某个时候崩溃并生成了核心文件。现在我无法在同一个设备中加载这个核心文件,因为我没有更多的内存来复制源文件和调试可执行文件(没有剥离)。

是否可以在linux机器(ubuntu,x86机器)上加载这个核心文件来查找崩溃位置?

类似于 x86 linux 机器上的东西 #gdb --core --target arm

【问题讨论】:

【参考方案1】:

是否可以在linux机器(ubuntu,x86机器)上加载这个核心文件来查找崩溃位置?

是的:您需要二进制文件及其使用的任何共享库、core 文件以及为您的目标主机构建的 GDB 交叉调试器,或者支持多架构。

Ubuntu 提供了gdb-multiarch package,它应该可以正常工作。比如:

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

【讨论】:

以上是关于是否可以在 x86 机器中加载核心文件(由 arm 处理器生成)?的主要内容,如果未能解决你的问题,请参考以下文章

ARM CPU和X86 CPU的区别

x86机器上运行arm64 docker

x86机器上运行arm64 docker

无法在 WinDbg 中加载 SOS

是否可以从资产文件夹中加载可绘制对象?

在 .net 核心应用程序中加载标准库