我试图在我的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机器。
发布于 2013-02-08 21:01:20
这可能会有所帮助:
$ 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)发布于 2012-09-27 22:42:55
只有当您的桌面(您试图在其中运行gdb-multiarch)是x86时,以下内容才有意义。
Gdb是一个调试器。因此,它将无法在您的x86台式机上调试外来体系结构可执行文件,因为您不能在x86处理器上运行arm代码。但是,您可以使用将在arm机器上运行的gdb-server对其进行远程调试。
您的桌面是arm还是x86?
https://stackoverflow.com/questions/12621511
复制相似问题