例如,我想在每一行之后插入一个函数调用。如:

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/

10-11 22:35
查看更多