2016-04-18 17 views
4

Ich habe einen Build meiner App, die nur abstürzt, wenn Instrumente laufen. Der Repro-Fall ist 100%, stürzt jedoch nicht ab, wenn ein Release-Build ohne Instrumente ausgeführt wird oder wenn ein Debug-Build ausgeführt wird. Da Instruments einen Release-Build ausführt, kann ich nicht genau durchgehen und herausfinden, was genau abstürzt. Wenn der Build abstürzt, geschieht dies still und ohne Ausgabe, die ich finden kann. Es nur stürzt mit Zuteilungen in Instrumenten läuft.Xcode iOS Instrumente:

Ich habe Schwierigkeiten herauszufinden, was passiert. Gibt es einen Instrumentenmodus, von dem ich nicht weiß, dass er diesen Fehler einfangen und mir die Besonderheiten melden wird?

Ich habe ähnliche Fragen auf Stackoverflow gelesen, aber diese Fragen haben mir nicht geholfen.

Der Absturz verhält sich wie ein Zombie, aber nur passiert, wenn Instrumente laufen, und "Zombie-Erkennung aktiviert" zeigt keinen Zombie an.

Exception Type:  EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes:  KERN_INVALID_ADDRESS at 0x0000000000000008 
Exception Note:  EXC_CORPSE_NOTIFY 

Application Specific Information: 
CoreSimulator 209.19 - Device: iPad Air 2 - Runtime: iOS 9.3 (13E230) - DeviceType: iPad Air 2 

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 
0 libswiftCore.dylib    0x0000000109f03dc0 swift_retainCount + 0 
1 liboainject.dylib    0x000000010335d223 oa_swift_tryRetain + 297 
2 libswiftCore.dylib    0x0000000109f14d69 -[SwiftObject retainWeakReference] + 9 
3 libobjc.A.dylib     0x00000001098b8b6b weak_read_no_lock + 89 
4 libobjc.A.dylib     0x00000001098b94c6 objc_loadWeakRetained + 104 
5 libobjc.A.dylib     0x00000001098b94f2 objc_loadWeak + 15 
6 com.apple.Foundation   0x0000000108da975c empty + 35 
7 com.apple.Foundation   0x0000000108da96fa -[NSConcreteHashTable dealloc] + 46 
8 libobjc.A.dylib     0x00000001098b9afe objc_object::sidetable_release(bool) + 232 
9 liboainject.dylib    0x000000010335c6e9 ___swapMethods_block_invoke_4 + 272 ```` 
+1

Bearbeiten Sie das Schema, und ändern Sie den Build von Instruments so, dass das Debug-Build anstelle von Release verwendet wird. – rmaddy

+0

Danke, es schlägt immer noch keine Breakpoints beim Debuggen (ich bin ziemlich neophyt mit Instrumenten). Ich bin mir nicht sicher, was ich als nächstes versuchen soll. –

+0

Welche Optimierung verwendet Ihre Release-Konfiguration? – matt

Antwort

1

kommt es vor, die gleichen Dinge zu mir auf Xcode 9 die iOS 10 Simulator verwenden, ist standardmäßig 11 iOS-Simulator, aber ich wollte auch 10.

So weit, so schlecht, jedes Instrument Manipulation auf iOS testen verursacht, dass meine Anwendung mit fast demselben Backtrace abstürzt als der hier gezeigte, wenn ich den iOS 10 Simulator verwende.

Ich habe viele Dinge ausprobiert und zuletzt dachte ich, dass es eine Inkompatibilität von Xcode 9 Instrument mit älteren Simulator SDK geben könnte.

Also wechselte ich auf den iOS11-Simulator, der der Standard auf Xcode 9 ist und es löst mein Instrumentenproblem.

Ich bin jetzt in der Lage, Instrument für die Speicheruntersuchung auf meiner App zu verwenden.