【问题标题】:How to debug EXC_BAD_ACCESS (SIGSEGV) in Mac application?如何在 Mac 应用程序中调试 EXC_BAD_ACCESS (SIGSEGV)?
【发布时间】:2014-04-15 18:18:02
【问题描述】:

我收到了一份崩溃报告,上面写着应用程序崩溃了,下面是快照

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: EXC_I386_GPFLT

Application Specific Information:
objc_msgSend() selector name: isKindOfClass:

在 iPhone 模拟器中,我可以尝试通过发送 Hardware-> memory 警告来进行调试,但在 Mac 应用程序中我该如何调试呢?即使我启用了 Zombie 并对其进行测试,我也无法获得崩溃的确切位置

【问题讨论】:

  • 您是否有堆栈跟踪显示导致“objc_msgSend()”的原因?
  • @PhillipMills 是的,我有堆栈跟踪,但跟踪中的所有内容都与 com.apple.Appkit 相关。除了main,我找不到指向我的应用程序包标识符的单一方法
  • 这些 Appkit 中是否有任何使用您提供的委托或回调?
  • 可能是内存管理问题。崩溃可以重现吗?你用ARC吗?是否涉及 CoreFoundation-Types?

标签: macos cocoa crash


【解决方案1】:

崩溃报告在它的表示中有意义,看起来像这样

父进程:??? [1]

应用程序特定信息:= 无信息

异常类型:EXC_GUARD

异常代码:0x4000000200000002、0x00007fff8c4b02a8

异常类型:EXC_GUARD 异常代码:

“0x4”。 => 警卫类型

“000000200000002” => 不允许的操作

“0x4” => 表示保护是由 SQLite 应用的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多