2011-06-28 1 views
0

J'ai mon propre plugin - une bibliothèque statique liée à mon projet. Lorsque j'ajoute des sources Twitter + OAuth et que je les compile toutes, cela modifie la pile des appels dans mon application principale, provoquant l'échec de EXC_BAD_ACCESS.Ajout de nouveaux fichiers source au projet change ma pile d'appels dans l'application principale

sans fichiers source Twitter (fonctionne très bien):

#0 0x0051fc32 in registerMyOwnPluginCallback at MyPlugin.c:19 
#1 0x00019b54 in -[AppController applicationDidFinishLaunching:] at AppController.mm:1058 
#2 0x308f15a4 in -[UIApplication _performInitializationWithURL:sourceBundleID:] 
#3 0x308f117c in -[UIApplication _runWithURL:sourceBundleID:] 
#4 0x309374b0 in -[UIApplication handleEvent:withNewEvent:] 
#5 0x30936cf0 in -[UIApplication sendEvent:] 
#6 0x3093687c in _UIApplicationHandleEvent 
#7 0x3204696c in PurpleEventCallback 
#8 0x30254a76 in CFRunLoopRunSpecific 
#9 0x3025416a in CFRunLoopRunInMode 
#10 0x308f0354 in -[UIApplication _run] 
#11 0x308eea94 in UIApplicationMain 

avec les fichiers source Twitter (vomit EXC_BAD_ACESS):

#0 0x00533b8c in registerMyOwnPluginCallback at MyPlugin.c:17 
#1 0x308f15a4 in -[UIApplication _performInitializationWithURL:sourceBundleID:] 
#2 0x308f117c in -[UIApplication _runWithURL:sourceBundleID:] 
#3 0x309374b0 in -[UIApplication handleEvent:withNewEvent:] 
#4 0x30936cf0 in -[UIApplication sendEvent:] 
#5 0x3093687c in _UIApplicationHandleEvent 
#6 0x3204696c in PurpleEventCallback 
#7 0x30254a76 in CFRunLoopRunSpecific 
#8 0x3025416a in CFRunLoopRunInMode 
#9 0x308f0354 in -[UIApplication _run] 
#10 0x308eea94 in UIApplicationMain 
#11 0x0001b8c4 in main at main.mm:18 

Je ne les fichiers source ajoutée pour la compilation et ne modifiait pas la code de départ.

Quelle peut être la cause de ce genre de comportement?

Répondre

1

avant cela, vous devez identifier quel objet fuit.

Dans le dossier du projet, vous cliquez sur les exécutables et sélectionnez votre application et faites un clic droit dessus après avoir cliqué sur obtenir des informations, puis ajoutez un argument comme NSZombieEnabled OUI. Maintenant, nettoyez toutes les cibles et exécutez l'application reproduire le même scénario, puis il affichera l'objet correct. alors répare le.

+0

Eh bien, j'ai le point de panne et il n'y a pas encore d'objets, mais seulement l'affectation du pointeur de fonction. J'affecte le nom de fonction de l'application, au pointeur statique de fonction à mon propre plugin. C'est tout. –

+0

Le point de collision est déjà connu. Ma question concerne davantage la façon dont la pile d'appels peut changer en raison des fichiers sources ajoutés sans changer le code de départ. –

+0

avez-vous vérifié nslog après avoir mis NSZombieEnabled. Si possible s'il vous plaît faites le moi savoir. pour moi, il montre [cfstring release] [nsurl release] une partie de la sortie que j'ai obtenue – maheswaran

Questions connexes