gcc - 利用编译器来辅助代码检测

时间:2016-09-02 13:09:38

标签: c++ gcc instrumentation qnx

背景

我正在OMAP 5 (ARM)开发并使用基于QNX gcc的C ++编译器。

我知道the ability of gcc to insert a custom entry/exit callback for each function,但我想了解更多信息。

问题

对于初学者,我想要检测每个控制流语句

void func()
{
    if(bob == 9)
    {

        bob = 55;   
    }
    else
    {
        bob = 101;
    }
}

会变成

void func()
{
    if(bob == 5)
    {
        MACRO(0x1433) //0x1433 = ID for this particular if-statement
        bob = 55;   
    }
    else
    {
        MACRO(0x3243) //0x3243 = ID for this particular else-statement
        bob = 99;
    }
}

我知道我可以自己进行解析,但是对于更复杂的语句,它会变得混乱。

问题

gcc编译器已经在编译过程中解析了代码。

有什么方法可以利用一些中间输出,这样我就可以更容易地识别控制流语句了吗?

显然有预处理输出,但只能解析宏

0 个答案:

没有答案