gdb调试问题

zzhh87 2004-09-14 11:23:46
我是一个linux编程的初学者,为学习使用gdb我做了如下测试
我写了一个程序叫greetings,其结构如下:
-rw-r--r-- 1 b010048_ bachelor 94 Sep 14 21:59 greeting1.c
-rw-r--r-- 1 b010048_ bachelor 27 Sep 14 21:50 greeting1.h
-rw-r--r-- 1 b010048_ bachelor 348 Sep 14 22:18 greeting2.c
-rw-r--r-- 1 b010048_ bachelor 27 Sep 14 21:50 greeting2.h
-rwxr-xr-x 1 b010048_ bachelor 14504 Sep 14 22:18 greetings
-rw-r--r-- 1 b010048_ bachelor 115 Sep 14 21:49 greetings.c
-rw-r--r-- 1 b010048_ bachelor 231 Sep 14 22:14 Makefile

greetings.c 很简单,如下
#include"greeting1.h"
#include"greeting2.h"


int main()
{
greeting1("l like unix");
greeting2("i like unix");
}

greeting1.c 和greeting2.c分别定义函数greeting1和greeting2,greeting1只是简单的把字符窜打印出来,greeting2则将其倒序打印
Makefile 文件如下
greetings:greetings.o greeting1.o greeting2.o
gcc -o $@ $^
greetings.o:greetings.c greeting1.h greeting2.h
gcc -c $<
greeting1.o:greeting1.c greeting1.h
gcc -c $<
greeting2.o:greeting2.c greeting2.h
gcc -c $<
clean:
rm -f *.o

编译链接后得到可执行文件greetings
将其载入gdb greetings
我现在想在greeting2.c文件的某一行设置断点,我用list命令键入
list greeting2.c
gdb报错
如果整个程序只由一个.c文件组成键入list就会出现原码,如果程序由多个模块组成,我怎么设置断点跟踪程序,谢谢。
还有我的Makefile的最后一行命令为什么不能执行,谢谢
...全文
191 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzhh87 2004-09-19
  • 打赏
  • 举报
回复
谢谢各位拉
yangl2000 2004-09-17
  • 打赏
  • 举报
回复
同意楼上
JedyWoody 2004-09-16
  • 打赏
  • 举报
回复
把 -f 去掉试试
yuanlei1978113 2004-09-16
  • 打赏
  • 举报
回复
你想用gdb调试,那么编译时一定要加-g参数。
tibet 2004-09-16
  • 打赏
  • 举报
回复
编译的时候带上-g参数
gdb greetings
b greeting2.c 123
注:123就是你要设的断点行数
yanghuajia 2004-09-16
  • 打赏
  • 举报
回复
greetings:greetings.o greeting1.o greeting2.o
gcc -o $@ $^ -g
greetings.o:greetings.c greeting1.h greeting2.h
gcc -c $< -g
greeting1.o:greeting1.c greeting1.h
gcc -c $< -g
greeting2.o:greeting2.c greeting2.h
gcc -c $< -g
kaoziji 2004-09-15
  • 打赏
  • 举报
回复
支持 Xeroo(别一个一个字母的念了,念zero!)
yanghuajia 2004-09-15
  • 打赏
  • 举报
回复
file 命令是load可执行文件。嘻嘻。原来是这也错了
Xeroo 2004-09-14
  • 打赏
  • 举报
回复
gcc编译的时候打开-g
zzhh87 2004-09-14
  • 打赏
  • 举报
回复
(gdb) file greeting2.c
"/home/b010048/fileOperation/GDB/greeting2.c": not in executable format: File format not recognized

不行
spotboy 2004-09-14
  • 打赏
  • 举报
回复
可以通过使用file命令设定文件.

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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