GNU gdb Red Hat Linux (5.5)
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...const: not in executable format.
解决办法:
1.查看Makefile文件,CFLAGS选项是否加-g # CFLAGS= -g -O2
2.file/tyoe命令查看执行文件类型
[root@lt-liyuncheng 2]# file const
const: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked
(uses shared libs), for GNU/Linux 2.6.9, not stripped #保证是可执行文件
[root@lt-liyuncheng 2]# type ./const
./const is ./const #保证执行文件路径正常
3.如果程序正在处于执行状态,那么调试的时候使用下面的命令:
$ps -ef|grep const
$gdb const PID
刚开始学习Qt,在调试程序时提示not in
executable
format
:file
format
not recognized
在查找资料后发现是因为编译器(Compiler)使用了32 位版本的 MSVC,调试器(Debugger)却使用了64 位的 MinGW 的 GDB,从而 GDB 不能调试 32 位程序而报错。
解决办法:
在 Qt 的 工具 - 选项 - 构建和运行 - Debuggers 选择 CDB(Debugging Tools for Windows),
不能自动检测到则手动添
Microsoft Portable
Executable
and
Common Object File
Format
SpecificationMicrosoft Corporation
Revision 6.0 - February 1999Note This document is provided to aid in the development of tools and applications for Microsoft Windows NT:registered: butis not guaranteed to be a complete specification in all respects. Microsoft reserves the right to alter this documentwithout notice.Microsoft, MS, MS-DOS, and CodeView are registered trademarks, and Windows, Windows NT, Win32, Win32s,and Visual C++
假设core文件和可执行程序在同一个目录,core文件为core.1234,可执行文件为test
1、执行命令 gdb core.1234
提示core.1234 : not in
executable
format
: File
format
not recognized
2、file ./test
提示 Reading symbols from test...
“bad
executable
format
”是一个常见的错误提示信息,它通常在我们尝试运行一个不兼容的可执行文件(
executable
file)时出现。可执行文件是一种计算机程序文件,它包含CPU能够理解和执行的二进制指令,因此只有兼容的CPU才能正确运行这个程序。
“bad
executable
format
”错误提示通常意味着这个可执行文件不符合当前CPU的架构或操作系统类型。例如,若我们在64位操作系统上安装了32位程序并尝试运行它,就可能会收到这个错误提示信息。类似地,如果试图在Windows系统上运行Mac OS X系统中的可执行文件或相反,也会出现这个错误。
这个问题可以通过找到相应的适用版本来解决。在运行可执行文件前,我们需要确认它的格式和操作系统类型是否与所使用的机器相同,或者是否安装了适当的运行环境(如JRE或.NET Framework)。在某些情况下,我们可以使用“兼容性模式”或者虚拟机等技术来运行不兼容的可执行文件,但这也有时会导致性能下降或其他不良后果。
如果以上方法都不能解决问题,那么这可能是因为可执行文件本身存在错误或损坏,需要重新下载或安装。 总之,“bad
executable
format
”问题通常是因为兼容性或版本问题引起的,需要仔细检查以找到合适的解决方法。