例如,我想在每一行之后插入一个函数调用。如:
for (int i = 0; i < n; ++i)
{
double d = 2*i;
}
会成为
for (int i = 0; i < n; ++i)
{
myFuncCall();
double d = 2*i;
myFuncCall();
}
myFuncCall();
我一直在研究通用的 c++ 解析器,但它们似乎是 a) 商业化的,b) 不完整的或 c) 难以使用的
编译器不是我的生活,这是达到和结束的一种手段,所以我正在寻找最快的解决方案
编辑:我想这样做的原因是我们正在追逐一个噩梦般的错误,其中代码在 Release模式下崩溃但在 Debug模式下不崩溃。由于我们无法控制的原因,我们无法使用调试符号编译发布代码,因此我们正在尝试使用随机打印语句取得进展。如果我可以完成这项工作,我们至少可以立即知道代码在哪里崩溃,因为插入的语句就像跟踪一样。
谢谢
安德鲁
最佳答案
只是问一个明显的问题:你能用单独的符号文件编译 Release模式吗?
如果没有,我实际上会建议使用手动“二进制搜索”方法,而不是在每一行上打印。如此多的打印语句的问题在于它们既会减慢您的程序速度,又会无意中改变其可观察到的行为。你能逃脱的越少越好。
关于c++ - 自动将代码插入现有 C++ 代码的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6630132/