c++ XCode不会破坏#include’dCPP文件

c++ XCode不会破坏#include’dCPP文件,第1张

概述如果您包含来自另一个CPP文件的CPP文件,则XCode拒绝在所包含的CPP文件中的任何断点处中断.我要向Apple提出一个错误,但我想在这里提一下,以防其他人遇到过这个问题并且可能已经找到解决方法. 您可能希望在CPP文件中包含CPP文件的原因非常充分,我不会在此处介绍.我只想说,我不能简单地重新安排项目直接编译包含的文件. 示例:一个非常简单的iPhone项目 main.mm extern v 如果您包含来自另一个CPP文件的CPP文件,则XCode拒绝在所包含的CPP文件中的任何断点处中断.我要向Apple提出一个错误,但我想在这里提一下,以防其他人遇到过这个问题并且可能已经找到解决方法.

您可能希望在CPP文件中包含CPP文件的原因非常充分,我不会在此处介绍.我只想说,我不能简单地重新安排项目直接编译包含的文件.

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

main.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是目标的成员,即它们被设置为build. 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’dCPP文件全部内容,希望文章能够帮你解决c++ XCode不会破坏#include’dCPP文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1069184.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存