Ich habe Haltepunkte gesetzt, aber Xcode scheint sie zu ignorieren.
xcode
breakpoints
AlanKley
quelle
quelle
Antworten:
Erstens stimme ich zu 100% den früheren Leuten zu, die sagten, ausschalten
Load Symbols Lazily
.Ich muss noch zwei Dinge hinzufügen.
(Mein erster Vorschlag klingt offensichtlich, aber als mich jemand zum ersten Mal vorschlug, ging meine Reaktion folgendermaßen vor: "Komm schon, bitte, du denkst wirklich, ich würde es nicht besser wissen ... oh.")
Stellen Sie sicher, dass Sie "Active Build Configuration" nicht versehentlich auf "Release" gesetzt haben.
Klicken Sie unter "Ziele" in der grafischen Baumanzeige Ihres Projekts mit der rechten Maustaste auf Ihr Ziel und führen Sie "Informationen" aus. Suchen Sie nach einer Eigenschaft mit dem Namen "Debug-Symbole generieren" (oder ähnlichem) und stellen Sie sicher, dass diese überprüft ist (auch bekannt als ON). Sie können auch versuchen, (auch in Target >> Get Info) eine Eigenschaft namens "Debug Information Format" zu finden und auf "Dwarf with dsym file" zu setzen.
Unter Ziel >> Informationen abrufen gibt es eine Reihe weiterer Eigenschaften, die sich auf Sie auswirken können. Suchen Sie nach Dingen wie dem Optimieren oder Komprimieren von Code und schalten Sie diese aus (ich gehe davon aus, dass Sie in einem Debug-Modus arbeiten, damit dies kein schlechter Rat ist). Suchen Sie auch nach Dingen wie dem Entfernen von Symbolen und stellen Sie sicher, dass diese ebenfalls ausgeschaltet ist. Beispielsweise sollte "Strip Linked Product" für das Debug-Ziel auf "No" gesetzt werden.
quelle
In Xcode 7 funktionierte für mich Folgendes:
1) Stellen Sie sicher, dass sich das Ziel -> Schema -> Ausführen - im Debug-Modus befindet (war Release).
2) Stellen Sie sicher, dass die Option "Debug ausführbare Datei" aktiviert ist (siehe unten):
quelle
Gehen Sie zu den Xcode-Debugging-Einstellungen. Stellen Sie sicher, dass "Symbole träge laden" NICHT ausgewählt ist.
quelle
Ich hatte gerade das gleiche Problem (wieder). Nachdem ich dreimal "Symbole träge laden" überprüft und die Flags zur Generierung von Info-Strippings entfernt und debuggt hatte, habe ich Folgendes getan:
Sie können dieselbe Aufgabe im Finder ausführen, indem Sie mit der rechten Maustaste / Option auf das .xcodeproj-Bundle klicken und "Paketinhalt anzeigen" auswählen.
Als ich Xcode neu startete, wurden alle meine Fenster auf Standardpositionen usw. zurückgesetzt, aber Haltepunkte funktionierten!
quelle
Für Xcode 4.x: Gehen Sie zu Produkt> Workflow debuggen und deaktivieren Sie "Disassemblierung beim Debuggen anzeigen".
Für Xcode 5.x Gehen Sie zu Debug> Debug Workflow und deaktivieren Sie "Disassembly beim Debuggen anzeigen".
quelle
Ein anderer Grund
In
DeploymentPostprocessing
BuildSettings auf NO setzen - Details hierZusamenfassend -
quelle
YES
nur in meinemsubproject
und dann funktionierten Haltepunkte nichtsubprojects
. Und nach dem EinstellenNO
war es perfekt!Siehe diesen Beitrag: Haltepunkte funktionieren nicht in Xcode? . Möglicherweise drücken Sie "Ausführen" anstelle von "Debuggen". In diesem Fall wird Ihr Programm nicht mit Hilfe von gdb ausgeführt. In diesem Fall können Sie nicht erwarten, dass Haltepunkte funktionieren!
quelle
Eine der möglichen Lösungen hierfür könnte sein: Gehen Sie zu Produkt> Schema> Schema bearbeiten> .. Unter Ausführen> Info> Ausführbare Datei aktivieren Sie "Debug ausführbare Datei".
quelle
Dies hatte mich für einen halben frustrierenden Tag in Xcode 9. Es war eine einfache Debug-Einstellung.
Gehen Sie zu Debug> Debug Workflow und stellen Sie sicher, dass "Disassembly immer anzeigen" deaktiviert ist. So einfach ist das. :((
quelle
Lösung für mich mit XCode 9.4.1 (hat an keinem Haltepunkt angehalten):
Unter Build-Ziel -> Build-Einstellungen -> Optimierungsstufe: Umgeschaltet von "Geschwindigkeit optimieren" -> "Keine Optimierung" (jetzt ist es langsamer, funktioniert aber)
quelle
Was es in meinem Fall gelöst hat, war ganz einfach: Xcode - Produkt - Clean Build Folder, gefolgt von Product - Run (nicht die Schaltfläche Xcode abspielen).
(Hatte das Problem auf Xcode 11 -beta 4 nach dem Umschalten auf Unit-Test mit Xcode-Wiedergabetaste lang gedrückt)
quelle
Kam auf diese Seite mit dem gleichen Problem (C-Code in Xcode 6 stoppte nicht an Haltepunkten) und keine der oben genannten Lösungen funktionierte (das Projekt war praktisch sofort einsatzbereit, was die Einstellungen angeht, so dass die Debugger-Einstellungen kaum eine Chance hatten auf den falschen Wert eingestellt sein) ...
Nachdem ich einige Zeit damit verbracht hatte, das Problem zu reduzieren, fand ich endlich den Schuldigen heraus (für meinen Code):
Xcode (/ LLVM) mag keine
#line
Präprozessorbefehle im Bison-Stil .Durch das Entfernen wurde das Problem behoben (der Debugger wurde an meinen Haltepunkten gestoppt).
quelle
Für Xcode 4:
quelle
Ich habe viele Probleme mit Haltepunkten in Xcode (2.4.1). Ich verwende ein Projekt, das nur andere Projekte enthält (wie eine Lösung in Visual Studio). Ich finde manchmal, dass Haltepunkte überhaupt nicht funktionieren, es sei denn, im Startprojekt ist mindestens ein Haltepunkt festgelegt (dh derjenige, der den Einstiegspunkt für meinen Code enthält). Wenn sich die einzigen Haltepunkte in Projekten auf "niedrigerer Ebene" befinden, werden sie einfach ignoriert.
Es scheint auch so, als ob Xcode Haltepunktoperationen nur dann korrekt verarbeitet, wenn Sie im Projekt, das die Quellzeile enthält, auf der sich der Haltepunkt befindet, auf den Haltepunkt einwirken.
Wenn ich versuche, Haltepunkte über ein anderes Projekt zu löschen oder zu deaktivieren, wird die Aktion manchmal nicht wirksam, obwohl der Debugger dies anzeigt. Ich werde mich also an deaktivierten Haltepunkten oder an einem (jetzt unsichtbaren) Haltepunkt befinden, den ich zuvor entfernt habe.
quelle
Ich habe meine Haltepunkte nicht funktionieren lassen und dann "Alle Ziele erstellen / bereinigen" ausgeführt, damit sie wieder funktionieren.
quelle
Ich denke, das Problem könnte die Inkompatibilität zwischen Geräteversionen und Xcode sein. Ich habe dieses Problem beim Versuch, auf meinem iPhone 4S unter iOS 5.0.1 zu debuggen. Ich benutze immer noch Xcode 3.2.5. Ich habe die Symbole vom Mobilteil erhalten, indem ich im Organizer-Fenster "Dieses Gerät für die Entwicklung verwenden" ausgewählt habe. Dieses Telefon weigert sich jedoch, einen Haltepunkt zu setzen. Mein altes 3GS wird einen Haltepunkt haben, dasselbe Xcode-Projekt, dieselben Einstellungen ... nur ein anderes Gerät und es läuft iOS 4.0. Ich denke, dies ist ein Xcode-Fehler in 3.2.5, da ich die Symbole habe. Nachdem ich alle hier veröffentlichten Lösungen ausprobiert habe, habe ich beschlossen, dass die Lösung für mein Problem darin besteht, ein Upgrade auf XCode 4 durchzuführen. Möglicherweise können Sie nicht effektiv debuggen, es sei denn, Ihr Basis-SDK ist mindestens so hoch wie das System, auf dem debuggt werden soll. Vielleicht ist das offensichtlich - kann jemand bestätigen?
Bearbeiten: Ich werde aktualisieren, wenn ich bestätigen kann, dass dies wahr ist.
quelle
Das Löschen meines Build-Ordners löste das Problem für mich.
quelle
Stellen Sie dazu und auch für Xcode 6 und höher sicher, dass die Schaltfläche für den Haltepunktstatus aktiviert ist (die blaue pfeilartige Schaltfläche):
quelle
In Xcode 4
quelle
Ich habe das Problem gefunden. Irgendwie wurde in meinem XCode die Option " Disassembly beim Debuggen anzeigen " aktiviert, wodurch dieses Problem auftritt. Als ich es deaktivierte, stoppte mein Debugger in meinem Quellcode.
Sie finden es unter:
Product->Debug Workflow->Show Disassembly
beim Debuggen.quelle
Sie können Haltepunkte im Dropdown-Menü aktivieren / deaktivieren
quelle
Wenn alles andere fehlschlägt, können Sie anstelle eines Haltepunkts die folgende Funktion aufrufen:
Um fortzufahren, setzen Sie i manuell auf Null und drücken Sie dann die Wiederaufnahme-Taste.
quelle
In XCode 6.3.1 ist mir dasselbe passiert. Ich habe es geschafft, es zu beheben durch:
Nach dieser Änderung habe ich die Optionen zum Verschieben von Haltepunkten wieder auf das Projekt zurückgesetzt und die Option zum Teilen von Haltepunkten deaktiviert. Dies funktioniert weiterhin.
Ich weiß nicht genau warum, aber das bringt meine Haltepunkte zurück.
quelle
Ich habe alle oben genannten Dinge ausprobiert, aber für mich hat es nur einmal funktioniert, die Debugging-Haltepunkte zu deaktivieren und dann zu aktivieren.
quelle
Wenn Sie Ihren Haltepunkt festlegen, klicken Sie mit der rechten Maustaste, und Sie sollten verschiedene Optionen für die Behandlung des Haltepunkts erhalten (Protokollvariablen und Fortfahren, Ausführung anhalten usw.).
Stellen Sie außerdem sicher, dass in den Debug-Einstellungen nicht "Symbole träge laden" ausgewählt ist.
(Gilt für Xcode 3.1, nicht sicher über frühere / zukünftige Versionen)
quelle
Stellen Sie außerdem sicher, dass die AppStore-Distribution der App nicht auch auf dem Gerät installiert ist.
quelle
Wenn Sie eine Plist-Datei "Entitlements" für Ihren Debug-Modus haben (möglicherweise, weil Sie mit dem Schlüsselbund arbeiten), stellen Sie sicher, dass die Plist-Datei die Zeile "get-task-allow" = YES enthält. Ohne sie wird das Debuggen und Protokollieren unterbrochen.
quelle
Es scheint 3 Zustände für die Haltepunkte in Xcode zu geben. Wenn Sie darauf klicken, werden die verschiedenen Einstellungen durchlaufen. Dunkelblau ist aktiviert, Grau ist deaktiviert und ich habe manchmal ein Hellblau gesehen, bei dem ich erneut auf den Haltepunkt klicken musste, damit er die dunkelblaue Farbe annimmt.
Stellen Sie außerdem sicher, dass Sie es mit dem Befehl debug und nicht mit dem Befehl run starten. Sie können dies tun, indem Sie entweder Option + Befehl + Zurück oder die Option Los (Debuggen) im Ausführungsmenü drücken.
quelle
Ich habe Xcode 3.2.3 SDK 4.1 Haltepunkte schlagen zufällig fehl. Ich habe festgestellt, dass sie wieder funktionieren, wenn Sie den Build bereinigen und den Touch-Befehl unter Build verwenden.
quelle
Hier ist eine dunkle, auf die ich gestoßen bin: Wenn Sie an einer gemeinsam genutzten Bibliothek (oder einem Plugin) arbeiten, werden Ihre Haltepunkte beim Start gelb, was dazu führen kann, dass Sie frustriert auf Ihre Tastatur hämmern und den Debug-Prozess beenden. Tu das nicht! Die Symbole werden erst geladen, wenn die App die Bibliothek lädt. An diesem Punkt werden die Haltepunkte gültig. Ich bin auf dieses Problem mit einem Browser-Plugin gestoßen ... BPs wurden deaktiviert, bis ich zu einer Seite navigierte, die mein Plugin instanziierte.
quelle