XCode 不会中断 #include 的 CPP 文件
XCode doesn't break in #include'd CPP files
如果包含来自另一个CPP文件的CPP文件,XCode将拒绝在包含的CPP文件中的任何断点处中断。我要向苹果公司提出一个错误,但我只想在这里提到它,以防其他人遇到这个问题,并可能找到解决它的方法
有很好的理由,你可能想包括CPP文件中的CPP文件,我不会在这里讨论。可以说,我不能简单地重新安排项目来直接编译包含的文件。
示例:一个非常简单的iPhone项目
main.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中的任何位置设置断点都无法触发。其他任何地方的断点都很好。注意:例如,您仍然可以从source1.cpp进入source2.cpp,只是不能直接在source2.cpp中中断
如果有人提出了一个解决方案,我会很高兴听到它。
最大
感谢苹果开发者论坛上的回复,我现在已经解决了这个问题。
编译器正在排列这些文件,默认情况下LLDB不会在排列的文件中中断。要强制中断它,您需要在.lldinit文件中添加一个设置。
编辑(或创建)文件~/.lldbinit并添加以下行:
settings set target.inline-breakpoint-strategy always
就这么简单!
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何在cpp文件之间切换窗口?在Qt中
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 库标题在标题中不可见,但在 cmake build 下.cpp文件中完全可见.为什么?
- C++ 链接到单独的.cpp文件说"multiple definitions"
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 包含在.cpp文件中包含在 .h 文件时包含
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 如何使用线程类编译 cpp 文件?
- 使用 Powershell 命令将 cpp 文件的文件夹编译为 GNU 的 g++
- 我应该将外部标头放在 .h 文件还是.cpp文件中?
- 从另一个 cpp 文件更改结构内、映射键内的变量