如果您包含来自另一个 CPP 文件的 CPP 文件,XCode 拒绝在包含的 CPP 文件中的任何断点处中断。我将向 Apple 提出一个错误,但只是想在这里提一下,以防其他人遇到这个问题并可能找到解决方法。
您可能希望从 CPP 文件中包含 CPP 文件,这有很好的理由,我不会在此介绍。可以这么说,我不能简单地重新安排项目来直接编译包含的文件。
示例:一个非常简单的 iPhone 项目
主要.mm
extern void FunctionInSource1( int a );
int main(int argc, char * argv[])
{
FunctionInSource1( 1 );
return 0;
}
源1.cpp
#include "source2.cpp"
void FunctionInSource1( int a )
{
int b = a;
FunctionInSource2( b );
return;
}
源代码2.cpp
void FunctionInSource2( int b )
{
int c = b;
c = c + 1;
return;
}
main.mm 和 source1.cpp 是目标的成员,即它们被设置为构建。source2.cpp 不是目标的成员,除非通过将其包含在 source1.cpp 中,否则不会编译
在 source2.cpp 中的任何位置设置断点都无法触发。其他任何地方的断点都可以正常工作。NB 例如,您仍然可以从 source1.cpp 进入 source2.cpp,只是不能直接在 source2.cpp 中中断
如果有人提出解决方案,我会很高兴听到它。
最大限度