0

以下详细信息来自运行 Solaris 10 的 Sun 机器中的会话。

$ file devli
devli: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped
$ file a
a: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
$ gdb
GNU gdb 6.4
Copyright 2005 Free Software Foundation, Inc.
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 "sparc-sun-solaris2.10".
(gdb) file a
Reading symbols from /tmp/tnmy/a...(no debugging symbols found)...done.
(gdb) file devli
"/tmp/tnmy/devli": not in executable format: File format not recognized
(gdb) q
$ ls -l a devlisrvr
-rwxr-xr-x   1 test2    dba         1480 Dec 23 18:23 a
-rwxr-xr-x   1 test2    dba       633088 Dec 23 18:26 devli
$ uname -a ;
SunOS myhost 5.10 Generic_127111-11 sun4v sparc SUNW,SPARC-Enterprise-T5220
$ cat a.c
int main() {return 0;}
$ /opt/SUNONE8/SUNWspro/bin/CC -V
CC: Sun C++ 5.5 2003/03/12
$ file `which gdb`
/usr/local/bin/gdb: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
$

有关为什么 gdb 无法识别文件格式的任何详细信息devli?我在 Internet 上进行了搜索,但找不到与此特定问题相关的任何内容。任何指针都会有所帮助。

a.c进入a,使用 gcc 构建;devli使用 Sun ONE Studio 8。

4

1 回答 1

0

请注意,GDB6.4 是 4 岁。GDB使用(当前) 7.0可能会获得更好的运气。

可执行文件也可能devli已损坏(file仅查看可执行文件的前几个字节,但GDB需要更多文件内容才能保持一致)。是否readelf --all > /dev/null报告任何警告?

于 2009-12-26T01:32:31.273 回答