c++ XCode不会破坏#include’dCPP文件
发布时间:2020-12-15 01:50:35 所属栏目:百科 来源:网络整理
导读:如果您包含来自另一个CPP文件的CPP文件,则XCode拒绝在所包含的CPP文件中的任何断点处中断.我要向Apple提出一个错误,但我想在这里提一下,以防其他人遇到过这个问题并且可能已经找到解决方法. 您可能希望在CPP文件中包含CPP文件的原因非常充分,我不会在此处介
如果您包含来自另一个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 就这么简单! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |