it-swarm-eu.dev

Warum funktionieren meine Haltepunkte nicht?

Ich habe Haltepunkte gesetzt, aber Xcode scheint diese zu ignorieren.

95
AlanKley

Zuallererst stimme ich zu 100% mit den früheren Leuten überein, die gesagt haben: Turn OFF Load Symbols Lazily.

Ich muss noch zwei Dinge hinzufügen.

(Mein erster Vorschlag klingt offensichtlich, aber als jemand ihn mir zum ersten Mal vorschlug, lautete meine Reaktion folgendermaßen: "Komm schon, denkst du wirklich, ich würde es nicht besser wissen ... oh.")

  1. Stellen Sie sicher, dass Sie "Active Build Configuration" nicht versehentlich auf "Release" gesetzt haben.

  2. Klicken Sie in der grafischen Baumansicht Ihres Projekts unter "Ziele" mit der rechten Maustaste auf Ihr Ziel und wählen Sie "Informationen abrufen". Suchen Sie nach einer Eigenschaft mit dem Namen "Generate Debug Symbols" (oder ähnlich) und vergewissern Sie sich, dass diese auf CHECKED (auch bekannt als ON) gesetzt ist. Sie können auch versuchen, eine Eigenschaft mit dem Namen "Debug Information Format" (auch in Target >> Get Info) zu finden und auf "Dwarf with dsym file" zu setzen.

Unter Target >> Get Info gibt es eine Reihe weiterer Eigenschaften, die Sie möglicherweise betreffen. Suchen Sie nach Dingen wie der Optimierung oder Komprimierung von Code und schalten Sie diese aus (ich gehe davon aus, dass Sie in einem Debug-Modus arbeiten, damit dies keine schlechten Ratschläge sind). Achten Sie auch auf Dinge wie das Entfernen von Symbolen und stellen Sie sicher, dass diese ebenfalls deaktiviert sind. Beispielsweise sollte "Strip Linked Product" für das Debug-Ziel auf "No" gesetzt werden.

139
pestophagous

In Xcode 7 funktionierte Folgendes für mich:

1) Stellen Sie sicher, dass sich das Ziel -> Schema -> Ausführen - im Debug-Modus befindet (war Release)

2) Stellen Sie sicher, dass die Option "Debuggen der ausführbaren Datei" aktiviert ist (siehe unten):

enter image description here

32
Oded Regev

Wechseln Sie zu den Xcode Debugging-Einstellungen. Stellen Sie sicher, dass "Load Symbols Lazily" NICHT ausgewählt ist.

25
AlanKley

Ich hatte gerade das gleiche Problem (wieder). Nach dreifacher Überprüfung von "Symbole träge laden" und Entfernen und Debuggen von Info-Generierungs-Flags habe ich Folgendes getan:

  1. beenden Sie Xcode
  2. öffnen Sie ein Terminalfenster und wechseln Sie in das Projektverzeichnis
  3. cd ins .xcodeproj verzeichnis
  4. lösche alles außer der .pbxproj Datei (ich hatte frank.mode1v3 und frank.pbxuser)

Sie können dieselbe Aufgabe im Finder ausführen, indem Sie mit der rechten Maustaste bzw. bei gedrückter Wahltaste auf das Paket .xcodeproj klicken und "Show Package Contents" (Paketinhalt anzeigen) auswählen.

Als ich Xcode neu startete, wurden alle meine Fenster auf die Standardpositionen usw. zurückgesetzt, aber Haltepunkte funktionierten!

14
Frank Szczerba

Für Xcode 4.x: Gehen Sie zu Produkt> Debug-Workflow und deaktivieren Sie "Demontage beim Debuggen anzeigen".

Für Xcode 5.x Gehe zu Debug> Debug-Workflow und deaktiviere "Demontage beim Debuggen anzeigen".

12
bneupaane

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.

8
Soong

Ein anderer Grund

Setzen Sie DeploymentPostprocessing in BuildSettings - Details hier auf NO

Zusamenfassend -

Wenn Sie diese Einstellung aktivieren, werden die Binärdateien entfernt und der Dateimodus, der Eigentümer und die Gruppeninformationen sollten auf Standardwerte gesetzt werden. [DEPLOYMENT_POSTPROCESSING]

enter image description here

7
gbk

Für Xcode 4:

go Product -> Debug ->  Activate Breakpoints
4
evya

Kam auf diese Seite mit dem gleichen Problem (C-Code in Xcode 6 hielt nicht an Haltepunkten an) und keine der obigen Lösungen funktionierte (das Projekt war praktisch sofort einstellungsseitig fertig, so dass keine der Debugger-Einstellungen möglich war) auf den falschen Wert eingestellt sein) ...

Nachdem ich einige Zeit damit verbracht hatte, das Problem zu reduzieren, fand ich endlich den Schuldigen (für meinen Code) heraus:

Xcode (/ LLVM) mag kein Bison-style #line Präprozessor-Befehle.

Durch das Entfernen wurde das Problem behoben (der Debugger wurde an meinen Haltepunkten angehalten).

4
Dave

Lösung für mich mit XCode 9.4.1 (hielt an keinem Haltepunkt an):

Unter Build-Ziel -> Build-Einstellungen -> Optimierungsstufe: Geändert von "Für Geschwindigkeit optimieren" -> "Keine Optimierung" (jetzt ist es langsamer, funktioniert aber)

4
Strinder

Das hatte mich für einen halben frustrierenden Tag in Xcode 9. Es war eine einfache Debug-Einstellung.

Gehen Sie zu Debuggen> Workflow debuggen und stellen Sie sicher, dass die Option "Demontage immer anzeigen" deaktiviert ist. So einfach ist das. :(

3
Gaz Long

Dies könnte einer der möglichen Gründe dafür sein. Gehen Sie zu Produkt> Schema> Schema bearbeiten> .. Überprüfen Sie unter Ausführen> Info> Ausführbare Datei "Ausführbare Datei debuggen".

2
Soropromo

Ich denke, das Problem könnte Inkompatibilität zwischen Geräteversionen und Xcode sein. Ich habe dieses Problem beim Versuch, auf meinem iPhone 4S mit iOS 5.0.1 zu debuggen. Ich benutze immer noch Xcode 3.2.5. Ich habe die Symbole über das Mobilteil abgerufen, indem ich im Organizer-Fenster "Dieses Gerät für die Entwicklung verwenden" ausgewählt habe. Dieses Telefon weigert sich jedoch, Haltepunkte zu setzen. Mein altes 3GS wird Haltepunkt, dasselbe Xcode-Projekt, dieselben Einstellungen ... nur ein anderes Gerät und es läuft mit 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, mein Problem durch ein Upgrade auf XCode 4 zu lösen. Vielleicht können Sie nicht effektiv debuggen, es sei denn, Ihr Basis-SDK ist mindestens so hoch wie das System, auf dem das Debugging durchgeführt werden soll. Vielleicht ist das offensichtlich - kann jemand das bestätigen?

Bearbeiten: Ich werde aktualisieren, wenn ich bestätigen kann, dass dies wahr ist.

2
Gavin

Das Löschen meines Build-Ordners löste das Problem für mich.

2
Jack Bellis

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 stelle manchmal fest, dass Haltepunkte überhaupt nicht funktionieren, es sei denn, im Startprojekt ist mindestens ein Haltepunkt festgelegt (d. H. Derjenige, der den Einstiegspunkt für meinen Code enthält). Wenn sich die einzigen Haltepunkte in Projekten "niedrigerer Ebene" befinden, werden sie einfach ignoriert.

Es scheint auch so, als würde Xcode Haltepunktoperationen nur dann korrekt behandeln, wenn Sie auf den Haltepunkt einwirken, wenn Sie sich in dem Projekt befinden, das die Quellzeile enthält, auf der sich der Haltepunkt befindet.

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 befinde mich also an deaktivierten Haltepunkten oder an einem (jetzt unsichtbaren) Haltepunkt, den ich zuvor entfernt habe.

2

Ich hatte meine Haltepunkte nicht funktionieren und habe dann Build/Clean All Targets ausgeführt, um sie wieder zum Laufen zu bringen.

2
snowytree

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):

enter image description here

2
df611

In Xcode 4

- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug 
-      but I have other targets set to AdHoc which debug fine once Debugger is set
1
brian.clear

Ich habe alle oben genannten Dinge ausprobiert, aber für mich hat es funktioniert, wenn ich die Debugging-Breakpoints nur einmal deaktiviert und dann aktiviert habe.

1
user8032120

 enter image description here

1
Stan

Ich habe das Problem gefunden. Irgendwie war in meinem XCode "Disassembly beim Debuggen anzeigen" aktiviert, was dieses Problem verursacht. Als ich es deaktivierte, stoppte mein ganzer Debugger in meinem Quellcode.

Sie finden es unter: Product->Debug Workflow->Show Disassembly beim Debuggen.

1
Perumal

Wenn alles andere fehlschlägt, können Sie anstelle eines Haltepunkts die folgende Funktion aufrufen:

void BreakPoint(void) {
    int i=1;
    #if !__OPTIMIZE__
    printf("Code is waiting; hit pause to see.\n");
    while(i);
    #endif
}

Um fortzufahren, setzen Sie i manuell auf Null und drücken Sie dann die Wiederaufnahmetaste.

1

Mir ist es in XCode 6.3.1 genauso ergangen. Ich habe es geschafft, indem ich:

  • Gehen Sie zu Ansicht-> Navigatoren-> Debug-Navigatoren anzeigen
  • Klicken Sie mit der rechten Maustaste in das Projektstamm -> Haltepunkte verschieben (Wenn die Option Benutzer ausgewählt ist)
  • (Ich habe auch die Option Haltepunkte teilen ausgewählt, obwohl ich mir nicht sicher bin, ob das notwendig ist).

Nach dieser Änderung setze ich die Optionen Haltepunkte verschieben zurück in das Projekt und deaktiviere die Option Haltepunkte freigeben Option und funktioniert immer noch.

Ich weiß nicht genau warum, aber das bringt meine Breakpoints zurück.

1
Osk

Auf Xcode 6.4 musste ich meinen Mac neu starten.

(Versucht, Haltepunkte zu aktivieren/deaktivieren, iOS-Gerät neu zu starten, Xcode neu zu starten, Haltepunktdateien aus dem Workspace-Paket zu löschen ...)

0
user2067021

Wenn Sie Subversion verwenden, setzen Sie einfach Ihre Projektdateien (nur) auf das letzte Mal zurück, als Sie wussten, dass der Debugger funktionierte.

0
stephen

Hier ist eine obskure, 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 Ihre Tastatur frustriert hämmern und den Debug-Prozess beenden. Mach 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.

0
Tim Keating

Dies geschieht zumindest gelegentlich bei einem iOS-Projekt. Um das Problem zu beheben, musste ich das iOS-Gerät neu starten, Xcode beenden und das Projekt neu erstellen.

0
kakyo

Stellen Sie außerdem sicher, dass die AppStore-Distribution der App nicht auch auf dem Gerät installiert ist.

0
dan

Wenn Sie alle grundlegenden Überprüfungen versucht haben, suchen Sie in den Projektziel- und Projekteinstellungen nach Optimierungsstufe . Stellen Sie sicher, dass Sie Keine für das Debug ausgewählt haben.

enter image description here

Ich habe Probleme damit, dass Xcode Haltepunkte verliert, wenn ich den Simulator verwende und die Scheme Launch-Einstellung auf "Warten auf ausführbare Dateien" gesetzt habe. Ändern Sie dies in "Automatisch starten" und Haltepunkte werden wieder lebendig.

0
Richard

Eine andere zu überprüfende Sache ist, dass, wenn Sie eine "Entitlements" -Plist-Datei für Ihren Debug-Modus haben (möglicherweise, weil Sie Sachen mit dem Schlüsselbund machen), sicherstellen, dass die Plist-Datei die Zeile "get-task-allow" = YES enthält. Andernfalls wird das Debugging und die Protokollierung unterbrochen.

0
davidcann

Ich glaube, dass ein Projekt auch in Bezug auf Haltepunkte beschädigt werden kann. Ich habe zum Beispiel ein Projekt, das KEINE Haltepunkte überschreitet, an denen es sich aus der vorherigen Sitzung erinnert. Ich schrieb zuerst darüber hier

0
AlanKley

Ich hatte das gleiche Problem, als ich ein Web-Plug-In debuggen wollte, dessen benutzerdefinierte ausführbare Datei Safari 5.1 war. Es funktionierte einwandfrei, bis meine Safari von 4.0.5 auf 5.1 aktualisiert wurde. Nach der erneuten Installation von Safari 4.0.5 funktionierten alle Haltepunkte ohne Änderung der Xcode-Einstellungen.

0
user917691

Ich habe Xcode 3.2.3 SDK 4.1. Haltepunkte schlagen nach dem Zufallsprinzip fehl. Ich habe festgestellt, dass sie wieder funktionieren, wenn Sie den Build bereinigen und den Befehl touch unter build verwenden.

0
Damon McGIll

Ein weiterer Grund, warum die Haltepunkte gelb werden können, besteht darin, dass die zu debuggende Anwendungsbinärdatei seit ihrer ersten Ausführung geändert wurde. In meinem Fall habe ich dem Ordner "Contents/Resources" der Anwendung einen Ordner hinzugefügt, nachdem ich das Programm einmal getestet habe. Bei der Debug-Ausführung nach dem Hinzufügen des Ordners wurden die Haltepunkte gelb und ignoriert. Ich habe meine Prozedur geändert: Ich habe eine Bereinigung durchgeführt, einen Build erstellt, den Ordner hinzugefügt und dann ausgeführt, und alles war in Ordnung.

Vielleicht erstellt Xcode (oder OS X) eine eigene digitale Signatur der Anwendung (die nicht digital signiert war) und merkt sich dann, dass die Anwendung geändert wurde, dass keine Haltepunkte gesetzt werden sollen. Indem ich meine Mods vor dem ersten (Debug-) Lauf der Anwendung erstellt habe, wurde die digitale Signatur erstellt mit meinen Mods.

All dies unter OS X 10.6.8 mit Xcode 3.2.2.

0
user532477

Gerade gelöst in XCode 4.2, nichts von alledem hat geholfen. Die Sache war (ich bin nicht sicher, was tatsächlich passiert ist, aber vielleicht hilft das jemandem): Mein Teamkollege hat neue Build-Konfigurationen erstellt und das Projekt in SVN aktualisiert. Ich hatte eine alte Build-Konfiguration in den Run Scheme-Einstellungen eingerichtet, daher waren die Schritte für mich:

  1. Produkt -> Schema bearbeiten ...
  2. Wählen Sie "% project_name.app% ausführen" (oder was auch immer das Problem verursacht)
  3. Wählen Sie im Kombinationsfeld Build-Konfiguration diese neue Build-Konfiguration von meinem Teamkollegen aus

Und das ist alles, Haltepunkte sind wieder da. Hoffe das hilft.

0
MANIAK_dobrii

Ich habe Xcode schon länger nicht mehr gemacht, aber ich empfehle, "Zerolink" und "Load Symbols Lazily" zu deaktivieren. das wird die meisten Probleme beheben. Zerolink ist sowieso ein Greuel.

0
duane

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 blasses Blau gesehen, bei dem ich erneut auf den Haltepunkt klicken musste, damit er die dunkelblaue Farbe annimmt.

Andernfalls stellen Sie sicher, dass Sie es mit dem Debug-Befehl und nicht mit dem Befehl run starten. Sie können dies entweder durch Drücken von Option + Befehl + Return oder der Option Go (Debuggen) im Ausführungsmenü tun.

0
crackity_jones

Wenn Sie den Haltepunkt festlegen, klicken Sie mit der rechten Maustaste und Sie sollten verschiedene Optionen zur Behandlung des Haltepunkts erhalten (Protokollieren von Variablen und Fortsetzen, Unterbrechen der Ausführung usw.).

Stellen Sie außerdem sicher, dass in den Debug-Einstellungen "Symbole träge laden" nicht ausgewählt ist.

(Gilt für Xcode 3.1, nicht sicher über frühere/zukünftige Versionen)

0
Scott Swezey

Xcode 5 und 6 GM) haben dazu geführt, dass erstere die Breakpoint-Funktionalität verloren haben (Xcode 6-Betas waren in Ordnung).

Ich habe viele der vorgeschlagenen Methoden ausprobiert, aber schließlich aufgegeben und verwende jetzt nur noch Xcode 6.

0
Rivera

Was es in meinem Fall gelöst hat, war ganz einfach, in Xcode - Product - Clean Build Folder, gefolgt von Product - Run (nicht die Schaltfläche Play Xcode).

(Hatte das Problem bei Xcode 11 -beta 4 nach dem Umschalten auf Unit-Test mit Xcode-Wiedergabetaste lange gedrückt)

0
Lukas

Sie können eine Einstellung in der Zieleinstellung Apple LLVM Compiler 4.1 Codegenerierungsabschnitt Generate Debug Symbol = YES überprüfen

0
Pushan

In meinem Fall habe ich festgestellt, dass die Haltepunkte versehentlich deaktiviert wurden. Sie können es über Debug-> Haltepunkte aktivieren [Cmd + Y] erneut aktivieren. Wenn Sie ausgegraute Haltepunktmarkierungen anstelle der üblichen blauen Markierung bemerken Dies ist wahrscheinlich der Fall.

Wie sich herausstellte, können Sie die Aktivierung von Haltepunkten jederzeit mit den Tastenkombinationen Cmd + Y umschalten. Möglicherweise haben Sie diese Kombinationstaste gedrückt, ohne es zu bemerken. Dieser Bericht basiert auf Xcode 7.2.

0
Benny Khoo

Im Falle von Xcode 4 und höher * Symbole faul laden * wird anscheinend gelöscht . Verweisen Sie also auf diesen Beitrag hier klicken

Einfache und detaillierte Erklärung hat für mich funktioniert.

0
Ajit Satarkar