Xcode 4内部编译器错误:总线错误

Xcode 4.0.1已经开始给我一个内部编译器错误。 它只是说“总线错误”。 它发生在我的一个.m文件的底部,现在它差不多有4000行。

我已经看过这个问题,但我没有犯这个错误,当它出现时,我通常可以通过在某处添加一些随机代码行来修复它。 当它第一次出现时,我将它追踪到我在一堆新代码中设置视图框架的位置:

view.frame = CGRectMake(otherView.frame.origin.x, 0, otherView2.frame.size.width, 40);

如果我用硬编码值替换otherView和otherView2引用,问题就消失了。 或者,如果我只是把int x = 0; 在违规路线上方,它消失了。

我也看过这个问题,但没有明确的答案。 它似乎不是任何单独的代码行; 它只是表面上随机出现。 Google没有任何我能找到的明确解决方案。

我已经尝试过所有可能的项目编译器(GCC 4.2,LLVM GCC 4.2和LLVM Compiler 2.0),他们都有问题,我设置了静态分析器来运行每个构建,关闭它不会这个问题似乎表明它是编译器中的一个错误,我只是卡住了吗?是否有解决方法?

编辑:另一个例子:它再次发生,我追查到:

[headerView centerViewVertically:milesLabel pixelsFromRight:pointLabel.frame.size.width + 20];

我将它改为:

int x = pointLabel.frame.size.width;
[headerView centerViewVertically:milesLabel pixelsFromRight:x + 20];

它再次运作。


我遇到了这个错误,事实证明这个错误是我的,基本上是由一个o型或者更准确地说是一个粘贴o引起的。

我正在创建两个标签并将它们添加到子视图中。 代码基本上是这样的。

UILabel *pointsLabel = [[UILabel alloc] initWithFrame:ptsFrame];
...
[self addSubview:pointsLabel];
[pointsLabel release];

UILabel *typeLabel = [[UILabel alloc] initWithFrame:typeFrame];
...
[self addSubview:pointsLabel];
[typeLabel release];

在第二个addSubviewpointsLabel ,即使我已经发布了它(并且真的意味着添加了typeLabel ),我再次添加了typeLabel 。 我希望这也会导致运行时错误,但无论出于何种原因,它都会导致上述的总线错误。 需要寻找的东西。


我刚刚发生了这种情况(不是第一次)。 我仍然没有弄清楚究竟是什么导致了这个问题,但它会编译为模拟器,但不是为设备。 将我的[[array alloc] init]移出我的init方法并转入单独的设置方法可解决此问题。

也许我在太短的时间内分配了太多内存? 这似乎不太可能,因为有几个[[array alloc] init]数组设置是在我试图添加的之前和之后完成的。所有事情的完成方式与其他数组的完成方式完全相同,为什么它是一个这一次的问题是我还不明白的。


我也遇到了这个错误,只有在设备上进行编译时,xcode执行了我的代码的现代化之后。 我在项目和目标构建设置中将编译器切换到Apple LLVM 2.1,然后再次运行。 这拾起了一些流浪; 在项目中,错误总线错误消失了。

链接地址: http://www.djcxy.com/p/6027.html

上一篇: Xcode 4 internal compiler error: bus error

下一篇: Mediator C++ GUI sample