Doj*_*ojo 1 c debugging gcc arm c-preprocessor
我正在用C 语言编写嵌入式 ARM 处理器的程序。我想在日志语句中查看源文件名和行号。
由于编译的代码不了解行号和源文件,因此我正在寻找在编译过程之前/期间自动插入的方法。
是否有任何标准工具或编译器功能可供我使用?
我正在使用海湾合作委员会。
例如:
这就是我要在源文件中写入的内容:
log("<#filename#> <#linenumber#> : Hello World");
Run Code Online (Sandbox Code Playgroud)
这是实际编译的内容:
log("Foobar.c 225 : Hello World");
Run Code Online (Sandbox Code Playgroud)
通常你会这样做:
// logging function
void log(const char * file, const int line, const char *msg)
{
fprintf(stderr, "%s:%d: %s\n", file, line, msg);
}
// logging macro - passes __FILE__ and __LINE__ to logging function
#define LOG(msg) do { log(__FILE__, __LINE__, msg) } while (0)
Run Code Online (Sandbox Code Playgroud)
然后当你想记录一些东西时:
LOG("We made it to this point!");
Run Code Online (Sandbox Code Playgroud)
然后将生成一条日志消息,例如:
foo.c:42: We made it to this point!
Run Code Online (Sandbox Code Playgroud)