Kann ich den Debugger von Xcode programmatisch unterbrechen?

8

Ich suche nach einer Möglichkeit, den XCode-Debugger programmatisch vom Swift-Code zu trennen, wenn mein iOS-Programm im Debugger läuft. Dies wäre ähnlich wie System.Diagnostics.Debugger.Break () in der Visual Studio-Umgebung funktioniert. Ist das möglich? Der Punkt wäre für jeden Entwickler, der einen bestimmten Codeabschnitt unterbricht, aber keinen schwerwiegenden Fehler hat, der die Codeausführung dauerhaft stoppt.

Edit: Das ist etwas anders als der Benutzer, der einen Breakpoint "aktivieren" möchte (obwohl die Antwort in dieser Frage wirklich das ist, wonach ich gesucht habe). Ich bin auch immer noch auf der Suche nach etwas, das in Swift ohne Interop, Bridging-Header und so gemacht werden kann.

    
JacobJ 29.12.2015, 21:39
quelle

4 Antworten

7

Für Swift funktioniert raise(SIGINT) für mich.

Ich habe diese Funktion:

%Vor%

Für DEBUG-Makro-Setup siehe hier: Gibt es in Abwesenheit von Präprozessormakros eine Möglichkeit, praktische schemaspezifische Flags auf Projektebene im Xcode-Projekt zu definieren

    
hyouuu 12.05.2016, 08:21
quelle
3

Wenn Sie asm("svc 0") in Ihren Code einfügen, wird Ihre laufende Anwendung angehalten, wenn Sie über xcode debuggen. Siehe: Ссылка

    
tskulbru 29.12.2015 21:58
quelle
0

Ich bin nicht zu 100% positiv, es gibt keinen eingebauten - aber Sie können selbst erstellen, was Sie wollen, indem Sie in der XCode-Benutzeroberfläche symbolische Haltepunkte verwenden.

1) Erstellen Sie eine neue Klasse, um Ihren Debugger Break darzustellen.

%Vor%

2) Fügen Sie einen symbolischen Haltepunkt zu einer Methode für diese Klasse hinzu

%Vor%

Dies ist ein kleiner Kreisverkehr, Sie könnten auch einen Breakpoint direkt in die Zeile "fireUpDebugger" setzen, da Sie den Code kontrollieren. Symbolische Haltepunkte sind sinnvoller, wenn Sie bei einem Methodenaufruf für etwas anhalten möchten, das Sie nicht steuern.

    
KirkSpaziani 29.12.2015 21:45
quelle
-1

Sie können einen Haltepunkt setzen, indem Sie auf die Zeilennummer klicken.

Oder Sie können exit(0) verwenden. Wenn Sie die App jedoch im AppStore einreichen möchten, müssen Sie diese Zeile entfernen. Andernfalls wird die App abgelehnt.

    
FelixSFD 29.12.2015 21:44
quelle

Tags und Links