【GDB】GDB调试:显示不可识别的文件格式

kisa_1001 2012-01-19 10:08:53
A程序core dump了,生成了core;
使用留存的A程序对core进行调试;

gdb A core 提示A不可识别

file A: 无异常……
...全文
729 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
恨天低 2012-01-19
  • 打赏
  • 举报
回复
你编译的时候,gcc 有没加 -g?

用gcc带-g选项编译源码,然后可以用gdb调试。
$gcc -g -o test test.c
$gdb test
赵4老师 2012-01-19
  • 打赏
  • 举报
回复
A被破坏了?
kisa_1001 2012-01-19
  • 打赏
  • 举报
回复
给了100分都没人来回答下?还是我发错地方了???
赵4老师 2012-01-19
  • 打赏
  • 举报
回复
解决这种问题需要有一种“怀疑一切,打击一切。”的态度。
赵4老师 2012-01-19
  • 打赏
  • 举报
回复
或者A是被类似upx的软件加了壳?
赵4老师 2012-01-19
  • 打赏
  • 举报
回复
总不至于A的作者在A里面故意嵌入了反gdb的非ELF格式标准的数据吧。
kisa_1001 2012-01-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhao4zhong1 的回复:]

随便写个很简单的B.c,里面故意越界修改一下堆栈中的字符数组造成core
然后试试gdb B corefile看行不行。如果不行可能得重新安装gdb了。
[/Quote]

事实证明:gdb没问题,但是又不认原来的可执行文件。12年的第一个诡异事件啊。
赵4老师 2012-01-19
  • 打赏
  • 举报
回复
确定留存的A就是产生core的A?
赵4老师 2012-01-19
  • 打赏
  • 举报
回复
随便写个很简单的B.c,里面故意越界修改一下堆栈中的字符数组造成core
然后试试gdb B corefile看行不行。如果不行可能得重新安装gdb了。
kisa_1001 2012-01-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhao4zhong1 的回复:]

提醒:Linux下文件名是不忽略大小写的。
[/Quote]

文件名称未被修改过,都是一样的。

我从svn下了那个版本的代码重编了一套来用。。。。
赵4老师 2012-01-19
  • 打赏
  • 举报
回复
提醒:Linux下文件名是不忽略大小写的。
kisa_1001 2012-01-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 icechenbing 的回复:]

你编译的时候,gcc 有没加 -g?

用gcc带-g选项编译源码,然后可以用gdb调试。
$gcc -g -o test test.c
$gdb test
[/Quote]
有的,makefile里面有的 这个不可能被遗忘的。。。。
kisa_1001 2012-01-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhao4zhong1 的回复:]

A被破坏了?
[/Quote]
没有,大小一样md5没问题。

64,640

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧