c - 使用 gcc 进行调试

标签 c gcc

我想用gcc编译一个C文件,我的问题是:当我们的代码中有错误(例如忘记分号)时,gcc是否可以向我们显示包含错误的源代码( s)?

谢谢

最佳答案

gcc 诊断的格式是行号和诊断消息。不显示有问题的代码。

如果您想要更具表现力的诊断,您可以尝试 clang 编译器。 clang 诊断的格式是行号、列号、诊断消息以及粘贴有问题的代码以及一些标记以显示问题所在。

例如,假设此代码在 printf 语句后缺少分号:

#include <stdio.h>

int main(void)
{
    int a = 42;

    printf("%d\n", a)

    return 0;
}

以下是 gccclang 之间诊断消息的区别:

$ gcc -Wall tst.c
tst.c: In function ‘main’:
tst.c:9: error: expected ‘;’ before ‘return’
$ clang -Wall tst.c
tst.c:7:22: error: expected ';' after expression
    printf("%d\n", a)
                     ^
                     ;
1 diagnostic generated.
$

关于c - 使用 gcc 进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8662069/

相关文章:

c++ - 将值传递给 main(int, char**)

c - 了解矩阵 c 的分配

c - 同时使用 rand() 和 rand_r() : is this simple example correct?

c++ - 在 .cpp 文件上链接静态库

gcc - 尝试构建ffmpeg源代码以制作独立库时出现链接错误

C 初学者 - Hello World 程序在 Windows 上从命令提示符不执行任何操作

C 指针错误

c - 如何从 c 中的线程将当前目录中的所有文件添加到数组?

C++ 编辑 char* argv[] 的元素

c++ - 如何在 C++ (gcc) 中获得完全限定的函数名称,_不包括_返回类型?