Ich suchte, kann aber keine gute Lösung finden. Ist das möglich, warum?Bedingter Breakpoint auf dem Rückgabewert einer Funktion in lldb?
Antwort
LLDB unterstützt keine Breakpoint-Befehle, die den Debugee ein wenig ausführen und dann weitere Schritte ausführen können. Die Breakpoint-Befehle enden, wenn der Debugee erneut startet. Sie können dafür keine Haltepunktbefehle verwenden. Dies ist eine Einschränkung, die irgendwann behoben wird, aber es ist keine triviale Arbeit.
Allerdings verfügt lldb auch über eine Funktion "skripted step", mit der Sie Ihre eigenen benutzerdefinierten Schrittoperationen erstellen können. Sie könnten das verwenden, um diese Einschränkung zu umgehen. Die FinishPrintAndContinue in den Beispielen Datei:
http://llvm.org/svn/llvm-project/lldb/trunk/examples/python/scripted_step.py
ist fast, was Sie wollen. Sie müssen nur die Fortsetzung ändern, um den Rückgabewert zu überprüfen (mit SBThread :: GetStopReturnValue) und dann je nach Ergebnis weiter oder anzuhalten. Dann könnten Sie einen Breakpoint auf die fragliche Funktion setzen und fügt einen Befehl hinzu, der diesen ausgefallenen Schritt ausführt.
Das ist immer noch zu schwer für mich, aber ich danke Ihnen für Ihre Antwort. – Karl