【发布时间】:2016-05-31 12:04:27
【问题描述】:
我正在寻找一种拦截编译过程的方法(C++ 程序,在 Visual Studio 中,但我也对其他工具感兴趣)。
我愿意
(1)得到某种树形结构的语义分析结果
(2) 自动插入一些新语句并
(3) 将其交还给编译器以继续其工作。
我会用它来检查和验证我的多线程程序是如何工作的(c) 执行实际的语句。
由于我想在每条语句之前插入这段代码,我需要一个自动方法。但是,使用正则表达式或一些类似的简单技术不会考虑语言的所有规则,例如if 语句可以包含单个语句,而没有 { 和 } 指示代码块的开始和结束 - 在这种情况下,在 if 语句之前插入代码将完全改变源的原始含义。区分函数和结构也可能很困难。
所以,请向我推荐一些工具/技术来做到这一点。
【问题讨论】:
标签: c++ multithreading visual-c++ compilation