9

我正在尝试在我的 Linux 桌面上读取 ARM 核心文件,但它似乎无法找出我的核心文件。有什么方法可以指示 gdb 我的核心文件是什么类型的?

$ file ~/daemon
./daemon: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped
$ file ~/core
./core: ELF 32-bit LSB core file ARM, version 1 (SYSV), SVR4-style, from './daemon -v -v -v -v -e 10 -t foo'
$ gdb-multiarch ~/daemon ~/core
GNU gdb (GDB) 7.5-ubuntu
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from ./daemon...done.
"./core" is not a core dump: File format is ambiguous
(gdb) core-file ~/core 
"./core" is not a core dump: File format is ambiguous

根据“集合架构”列表,生成平台是 gdb-multiarch 声称支持的 armv4。

编辑:澄清一下,我运行 gdb 的台式机是“x86_64-linux-gnu”,即 64 位 Intel Ubuntu 机器。

4

2 回答 2

19

这可能会有所帮助:

$ gdb-multiarch
...
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
(gdb) set gnutarget elf32-littlearm
(gdb) file daemon
...
(gdb) target core core
...
(gdb)
于 2013-02-08T13:01:20.273 回答
-4

仅当您的桌面(您尝试运行 gdb-multiarch 的地方)是 x86 时,以下内容才相关。

Gdb 是一个调试器。因此,它将无法在您的 x86 台式机上调试外部架构可执行文件,因为您无法在 x86 处理器上运行 arm 代码。但是,您可以使用将在 arm 机器上运行的 gdb-server 远程调试它。

你的桌面是arm还是x86?

于 2012-09-27T14:42:55.253 回答