例如,我想在每一行之后插入一个函数调用.如:
for (int i = 0; i < n; ++i)
{
double d = 2*i;
}
Run Code Online (Sandbox Code Playgroud)
会成为
for (int i = 0; i < n; ++i)
{
myFuncCall();
double d = 2*i;
myFuncCall();
}
myFuncCall();
Run Code Online (Sandbox Code Playgroud)
我一直在研究通用的c ++解析器,但它们似乎是a)商业的,b)不完整的或c)难以使用
编译器不是我的生活,这是一种方法和结束所以我正在寻找最快的解决方案
编辑:我想这样做的原因是我们正在追逐一个噩梦错误,其中代码在发布模式崩溃但不是调试模式.由于我们无法控制的原因,我们无法使用调试符号编译发布代码,因此我们尝试使用随机打印语句进行处理.如果我能把这项工作中,我们至少会立即知道其中的代码崩溃,因为插入语句会像痕迹.
谢谢Andrew
只是问一个显而易见的问题:你能用单独的符号文件编译发布模式吗?
如果没有,我实际上建议采用手动"二分搜索"方法,而不是在每一行都打印.这么多打印语句的问题是它们既可以减慢程序的速度,也可以无意中改变其可观察的行为.你越少越好.