Ich bekomme einige wirklich seltsame Fehler in XCode. Jedes Mal, wenn ich mein Programm laufen, erhalte ich:Seltsame XCode/Objective-C Fehler: Integritätsprüfung fehlgeschlagen
malloc: test_node_integrity: FreeListNode 0x1052af0 { _prev = 0xffffffff, _next = 0xffffffff, _size = 0 } failed integrity check.
Ich habe alle über Google gesucht, aber nicht jemand anderes mit dieser Fehlermeldung gefunden. Der Stack-Trace hat Methoden, die nicht in meinem Programm sind - es ist ein anderer Thread, den XCode ausführt. Kann ich da noch mehr Informationen dazu bekommen? Ich habe bereits versucht, XCode (10.5.8, XCode 3.1) zu deinstallieren/neu zu installieren.
Ich verwende Garbage Collection, also frage ich mich, ob dort ein Fehler ist. Ich habe einen anderen Fehler bekommen, "missing cpu_capibilites.h,"
, der auf eine String-Formatierungsmethode zeigen würde. Der Fehler hat sich in einen Zustand geändert, in dem der Debugger den Status nicht zurücksetzen konnte, und jetzt habe ich diesen Fehler.
Wenn es andere Fehlerinformationen gibt, die ich hätte posten sollen, lass es mich wissen.
Wenn Sie GC verwenden, ist das Problem nicht unbedingt Speicherzertrümmerer, zumindest nicht in der traditionellen "Verwendung nach' free() '" manuelle Speicherverwaltung Sinn. Da das GC-System von Cocoa kritisch davon abhängt, zu wissen, welche Zeiger GC sind und welche nicht, führt alles, was dazu führt, dass es den Überblick verliert, zu Problemen wie diesem. Es ist möglich, "fehlerfreien Code" zu schreiben und ihn zur Laufzeit aufgrund von Compiler-/GC-Bugs fehlzuschlagen, die beispielsweise eine globale "__starke" Zeigervariable durch einen anderen Zeiger referenzieren. Ich habe es fast unmöglich gefunden, Arbeitsprogramme mit dem GC-System von Cocoa zu schreiben. – johne
Nun, als der Manager bei Apple verantwortlich für Xcode, ich bin verantwortlich für 2.5MLOC, die Cocoa GC-System verwendet, und wenn wir Fehler wie oben erhalten, ist es fast immer ein Stück Code, der einen Zeiger auf ein GC-Objekt zwischenspeichert Das GC-System wird nicht darüber informiert und dann in den GC-Speicher geschrieben, nachdem das Objekt geerntet wurde. – cdespinosa