Xcode Debugging zeigt keine Werte an

8

Ich bin völlig ratlos. Ich habe seit über einem Jahr debuggen und hatte nur dieses Problem, wenn die Build-Konfiguration auf Release festgelegt wurde. Ich habe die Build-Konfiguration auf Debug gesetzt und ich habe überprüft, um sicher zu sein, dass ich an den richtigen Prozess angehängt habe und dennoch kann ich die Werte nicht sehen, während ich den Code durchlaufe. Ist jemand anderes in dieses Problem geraten?

Hier ist ein Screenshot:

Der Wert wird zurückgegeben, aber ich kann die Werte von ALLES in dieser Methode oder einer der anderen Methoden nicht sehen, und ich kann nicht herausfinden, warum.

Danke für Hinweise, die Sie mir geben können.

============================ UPDATE ================ ===================

Ich habe versucht, den Wert auszudrucken und dies ist die Ausgabe, die ich erhalte:

Beachten Sie jedoch, dass der Wert in der Variablenansicht für das Ergebnis korrekt ist, obwohl ich ihn nicht ausdrucken kann. Aber die anderen Werte, wie filePath sollten nicht Null sein.

Das ist so komisch.

============================ UPDATE ================ ===================

Ich habe den Breakpoint auf die Return-Anweisung gesetzt und immer noch kein Glück:

Diesmal sehe ich keinen Wert für das Ergebnis:

    
Patricia 05.06.2014, 16:07
quelle

4 Antworten

7

Ich hatte das gleiche Problem, beim Mauszeiger über den Abschnitt für jede Variable, die keinen Wert enthielt, aber während NSLog für diese Variablen den korrekten Wert druckte.

Jetzt ist es behoben. Probieren Sie dies

aus

Gehen Sie zum Produktmenü & gt; Schema & gt; Editierschema oder + & lt;

Wechseln Sie in Run zur Registerkarte Info, und ändern Sie die Build-Konfiguration in "debug". Hoffe, es wird funktionieren.

    
Sujay 05.03.2015, 06:24
quelle
9

@Lucy, im Idealfall sollten Sie beim Debuggen nicht im Release-Profil laufen, Release ist als App-Distribution-Profil mit einer kleinen Paketgröße und kleinen / keinen Debug-Symbolen gedacht.

Wenn Sie jedoch bei Release debuggen müssen (z. B. aufgrund von "Environment", aus Datengründen), stellen Sie sicher, dass die Optimierungsstufe für "Release" auf "None" gesetzt ist.

Sie können die obige Konfiguration über:

erreichen

1) Projektweite -Einstellungen - wirkt sich auf alle Ziele aus

2) Zielspezifische -Einstellung - betrifft nur ein einzelnes Ziel

Vergessen Sie nicht, dies vor der App Store-Verteilung zurückzuschalten. Lower Optimization erzeugt ein größeres ipk, was die Downloadzeit Ihrer Nutzer erhöht - auch das mögliche dSYM generiert.

Hintergrund

Für den Kontext sind Debug-, Adhoc- oder Release-Profile reine Id-Buildkonfigurationen, die XCode mitliefert. XCode startet Projekte mit einem Debug-Profil ohne Optimierung (und verschiedenen anderen vordefinierten Konfigurationen für Entwicklung und Debugging), so dass das Laden von Symbolen durch den Interpreter möglich ist - Sie können dies beliebig ändern.

Theoretisch kann ein Release-Erstellungsprofil erstellt werden, das mit Debug identisch ist.

    
snowbound 04.10.2014 05:47
quelle
1

Ich sehe einen Teil Ihres Problems. Beachten Sie, wie self ist nil ?

Das bedeutet, dass Sie sich in einem Methodenaufruf für ein aufgehobenes Objekt befinden. Aktivieren Sie NSZombies zum Debuggen.

siehe diese SO-Antwort , wie Sie es tun können Aktivieren Sie NSZombie

Da zulässig ist, Nachrichten an nil zu senden, C, würde ich vermuten, dass das Objekt als Nebeneffekt der Aufruf von doesLicenseFileExist oder von einem anderen Thread freigegeben wird.

Es kann hilfreich sein, einen Haltepunkt in IDLicenseCommand s -dealloc method einzufügen.

    
Brad Allred 05.06.2014 18:59
quelle
0

Ich hatte dieses Problem und drehte "Link-Time Optimization" von "Incremental" auf "No" und löste das Debugging-Problem.

    
delta2flat 05.02.2018 19:52
quelle

Tags und Links