c++ - XCode 不会破坏 #include 的 CPP 文件

标签 c++ xcode include breakpoints

如果您从另一个 CPP 文件中包含一个 CPP 文件,XCode 将拒绝在包含的 CPP 文件中的任何断点处中断。我打算向 Apple 提出一个错误,但只是想在这里提及它,以防其他人遇到这个问题并可能找到解决方法。

您可能希望从 CPP 文件中包含 CPP 文件,这是有充分理由的,我不会在此处详述。可以这么说,我不能简单地重新安排项目来直接编译包含的文件。

示例:一个非常简单的 iPhone 项目

ma​​in.mm

extern void FunctionInSource1( int a );

int main(int argc, char * argv[])
{
    FunctionInSource1( 1 );

    return 0;
}

source1.cpp

#include "source2.cpp"

void FunctionInSource1( int a )
{
    int b = a;

    FunctionInSource2( b );

    return;
}

source2.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 中中断

如果有人想出了解决方案,我会很高兴听到。

最大

最佳答案

感谢 Apple 开发者论坛上的回复,我现在已经解决了这个问题。

编译器正在内联这些文件,默认情况下 LLDB 不会中断内联文件。要强制它中断,您需要在 .lldbinit 文件中添加一个设置。

编辑(或创建)文件 ~/.lldbinit 并添加以下行:

settings set target.inline-breakpoint-strategy always

就这么简单!

关于c++ - XCode 不会破坏 #include 的 CPP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17680401/

相关文章:

c++ - 同时学习 Visual C++ 2008 和 C++?有什么资源可以推荐吗?

c++ - 您如何使用标准引号解释指向基类和派生类成员的指针的这种差异?

arrays - 将 switch 语句与数组一起使用时,类型 '[String]' 的表达式模式无法匹配类型 '[String]' 的值

c++ - #include <cmath> 与 C++ 程序中的 #include <math.h>

c - 结构声明两次?

php - htaccess 中的 auto_prepend_file 不适用于子目录

c++ - fstream <无法读取内存>。无法打印列表中的所有项目

c++ - 将十进制数转换为二进制数时遇到问题

iOS:如何在 UISearchDisplayController 中的 searchBar 上添加 View ,我希望 View 位于 _UISearchDisplayControllerDimmingView 之上

ios - 如何在另一个 XCTestCase 子类中使用一个 XCTestCase 子类的辅助方法?