有没有办法在运行时获取 C 代码中的源代码行号



有没有办法在运行时获取 C 代码中的源代码行号?它背后的想法是,假设一个软件是用简单的C语言制作的。.exe文件分发给对 C 一无所知的用户。现在,如果有任何错误,用户可以看到行号并将错误报告给制造商,以便可以在制造商现场完成调试。我只是为了调试运行时错误并在运行时在源代码中获取相应的行号。我是这些东西的初学者。

如果您使用的是 GCC 编译器,则可以使用标准预定义宏 - __LINE__ 作为行号占位符。

编译器将在编译时填写行号。

例如:-

printf("%d",__LINE__);

改用 gdb。但我想它会起作用:

  if(someThingsWrong())
    printf("wrong at line number %d in file %sn", __LINE__, __FILE__);
您可以使用

内置宏 __LINE____FILE__ ,它们始终扩展到当前文件名和行号。

#include <stdio.h>
int main(int argc, char *argv[])
{
    if(argc<2)
    {
        printf("Error: invalid arguments (%s:%d)n", __FILE__, __LINE__);
        return 0;
    }
    printf("You said: %sn", argv[1]);
    return 0;
}

最新更新