10.9.5 production crash with libdispatch - how to debug?

494 Views Asked by At

I just released an OSX app to the App Store, and reports are coming in that it crashes on OSX 10.9.5

Here is the relevant information from a user crash report:

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000050

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libdispatch.dylib               0x00007fff83955eeb dispatch_async_f + 3
1   de.jakobpenca.sdsdrop           0x00000001048168e0 0x10480e000 + 35040
2   de.jakobpenca.sdsdrop           0x0000000104843c0b 0x10480e000 + 220171
3   libdispatch.dylib               0x00007fff839561bb _dispatch_call_block_and_release + 12
4   libdispatch.dylib               0x00007fff8395328d _dispatch_client_callout + 8
5   libdispatch.dylib               0x00007fff8395aef0 _dispatch_main_queue_callback_4CF + 333
6   com.apple.CoreFoundation        0x00007fff81a164f9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
7   com.apple.CoreFoundation        0x00007fff819d1714 __CFRunLoopRun + 1636
8   com.apple.CoreFoundation        0x00007fff819d0e75 CFRunLoopRunSpecific + 309
9   com.apple.HIToolbox             0x00007fff87e6aa0d RunCurrentEventLoopInMode + 226
10  com.apple.HIToolbox             0x00007fff87e6a7b7 ReceiveNextEventCommon + 479
11  com.apple.HIToolbox             0x00007fff87e6a5bc _BlockUntilNextEventMatchingListInModeWithFilter + 65
12  com.apple.AppKit                0x00007fff84d1c24e _DPSNextEvent + 1434
13  com.apple.AppKit                0x00007fff84d1b89b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
14  com.apple.AppKit                0x00007fff84d0f99c -[NSApplication run] + 553
15  com.apple.AppKit                0x00007fff84cfa783 NSApplicationMain + 940
16  libdyld.dylib                   0x00007fff8ce8b5fd start + 1

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x00006080002781c0  rbx: 0x000060800024bc40  rcx: 0xffff9f7fffdb4301  rdx: 0x00007fff839561af
  rdi: 0x0000000000000000  rsi: 0x00006080002781c0  rbp: 0x00007fff5b3f0420  rsp: 0x00007fff5b3f0398
   r8: 0x00000000000000ff   r9: 0xffff9f7fffdb43bf  r10: 0x00007f8cbb039fa0  r11: 0x00007fff71218628
  r12: 0x0000000000000000  r13: 0x00007fff8cf5c0d0  r14: 0x00007fff8cf59080  r15: 0x000060800024bc40
  rip: 0x00007fff83955eeb  rfl: 0x0000000000010206  cr2: 0x0000000000000050

I don't have access to a Mavericks machine, and trouble extracting meaningful information from that report.

Does this look like unsupported API usage in libdispatch? Or does this just mean the crash happened somewhere inside a dispatched block?

I do use dispatch_async() around the time of crash.

The app was built on OSX 10.11.3 with Xcode 7.2, latest SDK, 10.9 as deployment target. Can I scan my code for unsupported API usage?

1

There are 1 best solutions below

3
On BEST ANSWER

I don't have access to a Mavericks machine

and

[The app was released with] 10.9 as deployment target

You don't need a physical machine (or boot drive) for every version of OS X you wish to support.

Get a copy of VMWare/Parallels/Virtual Box now; build two VMs, one Mavericks and one Yosemite; and test your app on both.