有没有办法在运行时获取 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;
}