如果条件被跳过甚至内部条件是真的,可能是什么原因?

时间:2015-06-19 13:17:48

标签: c++ xcode4 osx-mavericks compiler-optimization adobe-indesign

我正在使用XCode 4.6.2调试OSX 10.9.5上的一个C ++项目(一个Adobe InDesign插件)。我在下面的代码中遇到了一个非常奇怪的问题,即使其中的条件为valid / true,下面代码中的if语句也会被跳过。当控制到达此if语句时,insertSinglePageElement的值为1,insertSinglePageElement是bool16变量。 它必须返回true,仍然会跳过if块中的代码。

此外,Xcode是否允许您查看相应的汇编代码?如果是,那么如何?

bool16 insertSinglePageElement = kTrue;
...
//code
...
if(insertSinglePageElement == kTrue)
        {
            msgs = insertPageElementToPage(pe, pageData->grid, &pageName, pageData->presentationID, IDPageElementMap, true);

        } else {
            //Else Block

enter image description here

enter image description here

上图显示变量和调试器的值,显示第二个图像中的代码从第一个图像中跳过一步。

1 个答案:

答案 0 :(得分:0)

这个问题的原因是XCode4.6.2(使用Apple LLVM 4.2)显示为真的TRUE块不正确。打开优化后,X-Code开始显示为False。