Ich erhalte viele Konsolenausgaben wie diese, ohne dass meine Anwendung abstürzt:
malloc: * Fehler für Objekt 0xc6a3970: Der freigegebene Zeiger wurde nicht zugewiesen. * Setzen Sie einen Haltepunkt in malloc_error_break zum Debuggen
Wie kann ich herausfinden, welches Objekt oder welche Variable betroffen ist?
Ich habe versucht, einen symbolischen Haltepunkt wie diesen festzulegen, aber er wird nie angehalten:
Antworten:
Setzen Sie einen Haltepunkt auf malloc_error_break (), indem Sie den Haltepunktnavigator (Ansicht-> Navigatoren-> Haltepunktnavigator anzeigen oder ⌘7) öffnen, auf das Pluszeichen in der unteren linken Ecke klicken und "Symbolischen Haltepunkt hinzufügen" auswählen. Geben Sie im daraufhin angezeigten Popup
malloc_error_break
in das Feld Symbol ein und klicken Sie auf Fertig.BEARBEITEN: openfrog hat einen Screenshot hinzugefügt und darauf hingewiesen, dass er diese Schritte bereits erfolglos ausprobiert hat, nachdem ich meine Antwort gepostet habe. Bei dieser Bearbeitung bin ich mir nicht sicher, was ich sagen soll. Ich habe nicht gesehen, dass das selbst nicht funktioniert, und tatsächlich behalte ich immer einen Haltepunkt für malloc_error_break gesetzt.
quelle
UIImage
eine Datei hatte und die Datei mit einem anderen Bild überschrieb. Dies verursachte einen Fehler, als ichUIImagePNGRepresentation
das Originalbild aufrief (nicht, als die Datei tatsächlich überschrieben wurde).⌘7
Leiste ... Vielleicht meintest du das⌘8
?In Ihrem Screenshot haben Sie kein Modul angegeben: Versuchen Sie, "libsystem_c.dylib" einzustellen.
Ich habe das getan und es funktioniert: Der Haltepunkt stoppt hier (obwohl der Stacktrace oft aus einer obskuren Systemlib entsteht ...)
quelle
libsystem_malloc.dylib
. Breakpoint funktioniert bei mir ohne Angabe eines Moduls.Ich hatte das gleiche Problem mit Xcode. Ich habe die Schritte befolgt, die Sie gegeben haben, und es hat nicht funktioniert. Ich wurde verrückt, weil in jedem Forum, das ich sah, alle Hinweise für dieses Problem die sind, die Sie gegeben haben. Ich habe endlich gesehen, dass ich nach dem malloc_error_break ein Leerzeichen gesetzt habe, ich habe es unterdrückt und jetzt funktioniert es. Ein dummes Problem, aber wenn die Lösung nicht funktioniert, stellen Sie sicher, dass Sie vor und nach dem malloc_error_break kein Leerzeichen eingefügt haben.
Hoffe, diese Nachricht wird helfen ..
quelle
Ich hatte Berechtigungen erteilt, die ich nicht in einige Ordner schreiben musste (insbesondere / usr / bin /), und das verursachte das Problem. Ich habe es behoben, indem ich das Festplatten-Dienstprogramm geöffnet und "Festplattenberechtigungen reparieren" auf der Macintosh HD-Festplatte ausgeführt habe.
quelle
Ich löse es durch einen engen Safari-Inspektor. Siehe meinen Beitrag . Manchmal habe ich auch Sound gefunden, wenn ich meine App zum Testen ausführe und dann die Safari mit aktiviertem Auto Inspector öffne. Danach mache ich eine Aktion in meiner App, dann wird dieses Problem ausgelöst.
quelle