-1

我厌倦了调试我的官方项目代码流 - 它分布在多个文件和数百万/数千行中。因此,我开始编写一个 C++ 程序,该程序将从目标为 add printf( , FILE , LINE );的文件中获取输入文件名;- 每个 C++ 语句之后的额外调试语句,例如:

void my_func()
{
call_other();
}
in file 1.cpp at line 1

会成为

void my_func()
{
call_other();
printf("call_other() 1.cpp 1")
}

所以每个文件代码都会被解析,并且会添加这个额外的调试语句。

但是问题出现了各种类型的陈述:

if(condition) statement else statement;
C++ templates
switch case
etc

我无法建立我应该遵循的语法,例如:

如果该行以分号结尾并且下一个标记不是“{”,则添加此调试行。

我相信案例比我想象的要多。在累积到数百万行代码的数千个文件中实施相同之前,我应该考虑的任何建议?

有没有我已经可以使用的工具/已知技术?

4

1 回答 1

0

如果您绝对需要这样做,请查看clang并编写一个在 AST 级别上工作的源到源转换器。网上有各种各样的帖子可以让你开始使用它。一个例子:http ://eli.thegreenplace.net/2012/06/08/basic-source-to-source-transformation-with-clang/

于 2012-06-12T13:59:59.780 回答