2010-09-11 13 views
0

我正在开发一个C++应用程序与调试时,Xcode 3.1.4 如果我进入一个构造函数,我只看到成员变量,但没有在构造函数中使用当地人。C++ xcode调试构造函数中的当地人

没有人知道这个问题,以及如何解决它?

回答

0

它可能是编译器中的错误,如this one。您可以尝试升级您的g++或使用其他编译器。

0

明显的问题:你没有优化运行(-O0),对吗?通过优化,局部变量被优化是很常见的。即使没有优化,我发现很多简单的C++似乎都隐藏起来了。例如,你不能总是在shared_ptr上调用get(),因为它被内联。

我建议升级到Xcode 3.2。我觉得C++支持在3.1和3.2之间有所改进。也就是说,Xcode中的C++支持仍然非常薄弱。除非你需要C++的可移植性(就像我这样做),否则我不建议用C++开发Mac或iPhone应用程序。你会整天对抗系统。学习ObjC并使用它会好得多(此外,ObjC确实是一种非常强大的语言,并且与Cocoa一起工作得非常好)。即使您需要C++的可移植性,我也建议将C++代码隔离到Objective-C中的核心和wrapping it up

在任何情况下你都不应该使用太多的ObjC++。 gdb在使用ObjC++的经验中变得非常困惑。如果你打算用C++编写,请包装你的ObjC。如果你打算在ObjC中编写,请包装你的C++。但如果您打算使用调试器,则不要同时写入两者。

1

我在其他地方看到了-gstabs +解决了特定于构造函数中的当地人的类似问题。我没有尝试过,但为我工作的解决方案是将代码体移入具有相同参数的私有函数中,并从构造函数中调用该函数。同样的行为,但现在你可以调试代码...