【发布时间】:2021-03-17 19:39:16
【问题描述】:
我在基于 arm 架构的嵌入式设备中存在内存限制。 一个程序在某个时候崩溃并生成了核心文件。现在我无法在同一个设备中加载这个核心文件,因为我没有更多的内存来复制源文件和调试可执行文件(没有剥离)。
是否可以在linux机器(ubuntu,x86机器)上加载这个核心文件来查找崩溃位置?
类似于 x86 linux 机器上的东西
#gdb
【问题讨论】:
标签: gdb cross-compiling coredump
我在基于 arm 架构的嵌入式设备中存在内存限制。 一个程序在某个时候崩溃并生成了核心文件。现在我无法在同一个设备中加载这个核心文件,因为我没有更多的内存来复制源文件和调试可执行文件(没有剥离)。
是否可以在linux机器(ubuntu,x86机器)上加载这个核心文件来查找崩溃位置?
类似于 x86 linux 机器上的东西
#gdb
【问题讨论】:
标签: gdb cross-compiling coredump
是否可以在linux机器(ubuntu,x86机器)上加载这个核心文件来查找崩溃位置?
是的:您需要二进制文件及其使用的任何共享库、core 文件以及为您的目标主机构建的 GDB 交叉调试器,或者支持多架构。
Ubuntu 提供了gdb-multiarch package,它应该可以正常工作。比如:
gdb --sysroot /path/to/embedded/root /path/to/exe /path/to/core
(gdb) where
【讨论】: