Warum springt der Xcode-Debugger mit Swift so herum?

8

Ich habe den folgenden Code mit F6 in Xcode 6 debugged, und die Reihenfolge der Ausführung ist sehr interessant.

Hier ist der Code - 7 Zeilen, ein Breakpoint wird in Zeile 1 gesetzt:

%Vor%

Als ich den Code durchforstete, zeigte er die folgende Sequenz (die Zahlen sind Zeilennummern):

%Vor%

Warum ist das? Ist das etwas mit Xcode oder der Sprache? Diese Klassen sind in Amazon AWS SDK definiert, nicht sicher, ob das wichtig ist, sie werden durch eine schnelle-objektive-c-Überbrückung zugegriffen, könnte dies mit der Überbrückung zusammenhängen.

Übrigens ist das Nettoergebnis der Ausführung korrekt.

    
Peter Pei Guo 03.11.2014, 03:13
quelle

3 Antworten

1

Endlich habe ich eine Antwort auf meinen Fehlerbericht von Apple erhalten, und es hört sich an, als wäre es ein Bug und wurde in einer Beta-Version von XCode behoben. Wenn Sie nach einer Lösung suchen, versuchen Sie bitte die Beta:

  

Wir glauben, dass dieses Problem in der neuesten Xcode 6.3-Beta behoben wurde, einschließlich iOS 8.3 SDK mit Swift 1.2.

     

Bitte testen Sie mit dieser Version. Wenn Sie weiterhin Probleme haben, fügen Sie bitte alle relevanten Protokolle oder Informationen bei, die uns bei der Untersuchung helfen könnten.

     

Dies ist eine Vorabversion des vollständigen Xcode-Entwickler-Toolsets für Mac, iPhone, iPad und Apple Watch. Diese Version benötigt OS X Yosemite.

     

Xcode 6.3 - Build 6D520o    Ссылка

    
Peter Pei Guo 13.02.2015, 17:16
quelle
4

Ich denke, was Sie beobachten, ist der Effekt der Compiler-Optimierungen. Es überschreibt Ihren Code zur Kompilierzeit. Aus diesem Grund ist es normal, die Optimierung ( -Onone ) bei Debug-Builds zu deaktivieren, aber bei Release-Builds ( -Ofast oder -Os ) zu aktivieren.

    
Aaron Brager 03.11.2014 03:20
quelle
0

Sie sollten Ihre Projekt- und Zielkonfigurationsseite auf der Registerkarte "Buildeinstellungen" öffnen, das Tag "Apple LLVM 6.1-Codegenerierung" suchen, die Optimierungsstufe für Debug auf "None [-O0]" ändern und Ihr Projekt bereinigen und du bist fertig!

    
David 15.04.2015 00:54
quelle

Tags und Links