关于linux下编译调试C语言的有关问题

关于linux下编译调试C语言的问题
有错误的代码怎么用gdb调试
 比如我有个test.c
#include <stdio.h>
int main(void)
{
  printf("hello ,this is a linux test"),
  return 0;
}
也就是printf这里的,有错误
我用gcc -g -o test test.c
想生成一个test,用gdb来调试,但是无法生成test
当然如果printf这里没错误,是可以产生test用于debug


所以我的问题是,gdb本身应该是用来调试出错的代码的,那出错的代码无法生成用于调试的文件test,只有没错的代码才能生成test吗?
那没错误的代码我有必要去用gdb调试吗?

------解决方案--------------------
printf后面没有;
谢谢

GDB是用来调试的,不是用来查编译错误的,花点时间看看编译信息
------解决方案--------------------
编译错误和运行时错误不是一回事啊
能编过只能表示编译无错,并不表示程序逻辑正确啊。
这就类似于,你说的话别人能听懂,但并不表示你说的就是对的。
如果你说的话别人都听不懂,怎么判断对错呢?
------解决方案--------------------
调试,要求你的程序首先能够编译通过,可以执行。
调试不是调试你的编译问题,而是调试程序运行的逻辑问题