gdb调试问题
我是一个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的最后一行命令为什么不能执行,谢谢