objective-c – 线程0与X86线程状态(32位)崩溃:在cocoa应用程序中

objective-c – 线程0与X86线程状态(32位)崩溃:在cocoa应用程序中,第1张

概述我在osx应用程序中进行崩溃修复.崩溃报告显示 Date/Time: 2012-05-01 16:05:58.004 +0200OS Version: Mac OS X 10.5.8 (9L31a)Exception Type: EXC_BAD_ACCESS (SIGSEGV)Exception Codes: KERN_INVALID_ADDRESS at 0x00000000545f5f 我在osx应用程序中进行崩溃修复.崩溃报告显示

Date/Time: 2012-05-01 16:05:58.004 +0200OS Version: Mac OS X 10.5.8 (9L31a)Exception Type: EXC_BAD_ACCESS (SIGSEGV)Exception Codes: KERN_INVALID_ADDRESS at 0x00000000545f5f00Crashed Thread: 8Thread 8 crashed with X86 Thread State (32-bit):eax: 0x140e0850 ebx: 0x00060fc8 ecx: 0x92df0ec0 edx: 0xc0000003edi: 0x545f5f00 esi: 0x140e0870 ebp: 0xb0445988 esp: 0xb0445964ss: 0x0000001f efl: 0x00010206 eip: 0x92dca68c cs: 0x00000017ds: 0x0000001f es: 0x0000001f fs: 0x0000001f gs: 0x00000037cr2: 0x545f5f00

如何使用此报告篡改应用程序代码?

什么是线程0与X86线程状态(32位)崩溃?

如果有人知道请帮助我.
提前致谢.

解决方法 在这里查看Apple关于CrashReporter的技术说明: https://developer.apple.com/library/mac/#technotes/tn2004/tn2123.html

Thread 0 crashed with X86 Thread State (32-bit):  eax: 0x00000000  ebx: 0x942cea07  ecx: 0xbfffed1c  edx: 0x94b3a8e6  edi: 0x00000000  esi: 0x00000000  ebp: 0xbfffed58  esp: 0xbfffed1c   ss: 0x0000001f  efl: 0x00010206  eip: 0x00000000   cs: 0x00000017   ds: 0x0000001f   es: 0x0000001f   fs: 0x00000000   gs: 0x00000037  cr2: 0x00000000

对于运行32位代码的基于Intel的计算机,您应该考虑以下几点:

关注两个值:eip和异常地址(如前所述).

eip是异常发生时的程序计数器.也就是说,它是导致异常的指令的地址.对于大多数非内存访问异常(例如,由整数除以零引起的EXC_ARITHMETIC / EXC_I386_div),这是键值.

对于内存访问异常:

如果eip等于异常地址,则异常是由获取指令引起的.通常这意味着:

你调用了一个伪造的函数指针(或者,在一个虚假对象上称为方法)

你已经回到了一个糟糕的地址,反过来意味着你已经破坏了堆栈

如果eip不等于异常地址,则异常是由内存访问指令引起的(就C而言,这意味着您将取消引用无效指针).

总结

以上是内存溢出为你收集整理的objective-c – 线程0与X86线程状态(32位)崩溃:在cocoa应用程序中全部内容,希望文章能够帮你解决objective-c – 线程0与X86线程状态(32位)崩溃:在cocoa应用程序中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存