I'm using plist file to allow my Qt Application to be able to open files directly from the finder. Unfortunately sometimes and on some systems (described bellow) application crashes / freezes.
This problem occurs only on some client computers and only when I compile application on our production computer with 10.6.8 OSX. When I compile it on my 10.9.1 OSX, everything works ok.
I tried several changes and comment lot of code in our app, but application crashes also when the whole QApplication::event() method is commented. It seems to me as some bug in 10.8.6 OSX / 3.2.6 Xcode. Unfortunately right now I can't update it to newer version because of some backward compatibility issues.
I'm using latest Qt 4.8.6 from git and the same behavior was on official 4.8.2 version.
Is there any known workaround or any advice how to find/fix this bug? It's very difficult because this event can't be tested from debugger and tracing with QMessageBox crashed too no matter if event is handled or not. Also crash callstack doesn't show anything usefull (look bellow).
My Application plist file has following format:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key> <string>ORM Designer project file</string>
<key>CFBundleTypeRole</key> <string>Editor</string>
<key>CFBundleTypeIconFile</key> <string>@ICON@</string>
<key>LSHandlerRank</key> <string>Owner</string>
<key>LSIsAppleDefaultForType</key> <true/>
<key>CFBundleTypeExtensions</key>
<array>
<string>ormdesigner</string>
<string>ormdes</string>
<string>ormdesigner2</string>
<string>ormdes2</string>
</array>
</dict>
</array>
Callstack captured by Google's CrashPad:
Crash reason: EXC_BAD_ACCESS / 0x0000000d Crash address: 0x0
Thread 0 (crashed)
0 QtCore + 0x7cd6a
rbx = 0x00000000ffffffff r12 = 0x6163696c7070412f
r13 = 0x00007fff5fbfbe30 r14 = 0x00007fff5fbfbfb0
r15 = 0x0000000000007fff rip = 0x00000001054bed6a
rsp = 0x00007fff5fbfbe00 rbp = 0x00007fff5fbfbe20
Found by: given as instruction pointer in context
1 QtCore + 0x13f2cb
rip = 0x00000001055812cc rsp = 0x00007fff5fbfbe30
rbp = 0x00007fff5fbfbe70
Found by: stack scanning
2 QtGui + 0x38b4e
rip = 0x00000001057b6b4f rsp = 0x00007fff5fbfbe80
rbp = 0x00007fff5fbfc000
Found by: stack scanning
3 libobjc.A.dylib + 0x78e1
rip = 0x00007fff8cce48e2 rsp = 0x00007fff5fbfbee0
rbp = 0x00007fff5fbfc000
Found by: stack scanning
4 libobjc.A.dylib + 0x121db
rip = 0x00007fff8ccef1dc rsp = 0x00007fff5fbfbf50
rbp = 0x00007fff5fbfc000
Found by: stack scanning
5 CoreFoundation + 0x1a9eef
rip = 0x00007fff8752aef0 rsp = 0x00007fff5fbfbf68
rbp = 0x00007fff5fbfc000
Found by: stack scanning
Complete callstack is posted to pastebin.
Thanks for any advice Ludek
We decided to reinstall two of our build machines, one to Mac OSX 10.6.8 and one to OSX 10.7.5.
We installed completely the same SW on both machines with the only difference in Xcode. On 10.6.8 it was the latest 3.2.6 and on 10.7.5 it was 4.6.3.
When we built our application on both machines, version created at 10.7 works perfectly without any crash. Application built on 10.6. crashes again. So from all what we tried (we spent about 30hours on this bug) I'm almost sure that the problem is inside the Xcode compiler.
If anyone has the similar issue, the simplest and less time consuming way how to solve it is to update his build machine to newer version.
User contributions licensed under CC BY-SA 3.0