应用程序在 i386 上崩溃,但在 x86_64 上运行
今天我尝试在 Xcode 项目中切换架构,因为我即将使用尚未移植到 64 位的低级 QuickTime 内容。当我之前在 x86_64 上编译时,我的应用程序运行得很好。然后我将 arch 切换到 i386 并繁荣,我的应用程序在启动时不断崩溃。
奇怪的是,堆栈跟踪与我自己的代码无关。
#0 0x9929ebf1 in __CFBasicHashDeallocate
#1 0x99286ea1 in _CFRelease
#2 0x992b397d in _CFAutoreleasePoolPop
#3 0x917d1dda in NSPopAutoreleasePool
#4 0x92b67bc9 in loadNib
#5 0x92b66f99 in +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:]
#6 0x92b66eaa in +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:]
#7 0x92b66df5 in +[NSBundle(NSNibLoading) loadNibNamed:owner:]
#8 0x92b63bf9 in NSApplicationMain
#9 0x000023c8 in main at main.m:13
有什么想法吗?
I tried switching architectures in my Xcode project today, because I was about to use low level QuickTime stuff that's not yet ported to 64 bit yet. When i compiled before on x86_64 my app ran just fine. Then i switched the arch to i386 and boom, my app keeps crashing on startup.
The weird thing is, the stack tracke has nothing to do with my own code.
#0 0x9929ebf1 in __CFBasicHashDeallocate
#1 0x99286ea1 in _CFRelease
#2 0x992b397d in _CFAutoreleasePoolPop
#3 0x917d1dda in NSPopAutoreleasePool
#4 0x92b67bc9 in loadNib
#5 0x92b66f99 in +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:]
#6 0x92b66eaa in +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:]
#7 0x92b66df5 in +[NSBundle(NSNibLoading) loadNibNamed:owner:]
#8 0x92b63bf9 in NSApplicationMain
#9 0x000023c8 in main at main.m:13
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的猜测是您在 nib 中创建了在 32 位模式下不安全的对象。例如,您可能对某些对象的大小做出了不正确的假设,例如使用 double 代替 CGFloat 或使用 int64_t 代替 NSInteger。
My guess is that you have created objects in the nib that are not safe in 32 bit mode. You might, for instance, be making assumptions about the size of some object that is not true, for instance, using a double instead of a CGFloat or a int64_t instead of an NSInteger.