c - gdb 无法运行带有 "File format not recognized"的 ELF 64 位程序

标签 c gcc debugging gdb

我正在尝试使用 GDB 进行调试(以查找恼人的段错误)。当我运行时:

gdb ./filename

从命令行,我收到以下错误:

This GDB was configured as "i686-pc-linux-
gnu"..."/path/exec": not in executable 
format: File format not recognized

当我执行时:

file /path/executable/

我得到以下信息:

 ELF 64-bit LSB executable, AMD x86-64,
 version 1 (SYSV), for GNU/Linux 2.4.0, 
 dynamically linked (uses shared libs), not stripped

我使用的是 GDB 6.1,可执行文件是用 gcc 版本 3.4.6 编译的。

就使用 gdb 而言,我有点不知所措,但据我所知,在这种情况下它应该可以正常工作。知道出了什么问题吗?

最佳答案

可执行文件是 64 位 (x86-64),调试器是 32 位 (i686-pc-linux) 版本。您可能需要安装 64 位 (x86-64) 版本的调试器。

关于c - gdb 无法运行带有 "File format not recognized"的 ELF 64 位程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/275471/

相关文章:

python - pycharm是如何工作的?他们是如何连接到口译员的?

c - 尝试将结构实例写入文件时出现段错误

php - 快速CGI, SCGI,

c - 查找西门子 C167 编译器

c - 为什么 printf 不打印垃圾值?

java - 如何获取 Android/Java 中调试输出的方法名称?

c++ - 从哪里获得静态构建形式的 OpenAL?

c - 多个数组的逐元素求和的内存高效 MPI 并行实现

gcc - lcov/genhtml 可以显示从未执行过的文件吗?

debugging - 在 Clojure 中获取调用堆栈