应用程序在 i386 上崩溃,但在 x86_64 上运行

发布于 2024-09-06 17:39:17 字数 685 浏览 5 评论 0原文

今天我尝试在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晒暮凉 2024-09-13 17:39:17

我的猜测是您在 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文