2017-08-02 3 views
0

Ich versuche lldb programmatische Haltepunkteinstellung zu verwenden. Der Befehl lautet:lldb Haltepunkt Set Befehl schlägt fehl

(lldb) breakpoint set -r . -s <product-name> 
Breakpoint 25: no locations (pending). 
WARNING: Unable to resolve breakpoint to any actual locations. 

Wie Sie sehen können, es wirft mich eine Warnung sagen, dass es nicht die Positionen für einen Haltepunkt auflösen kann. Ich führe mein Projekt mit einem Debug-Schema und ohne Optimierung.

Was könnte diese Warnung verursachen?

Antwort

0

Wenn <product-name> eine gemeinsam genutzte Bibliothek ist, wurde sie möglicherweise noch nicht geladen. Verwendung:

(lldb) image list <product-name> 

zu verifizieren. Wenn das der Fall ist, keine Sorge, lldb wird den Haltepunkt auflösen, wenn die Bibliothek geladen wird.

Sie könnten auch eine andere Schreibweise von <product-name> als lldb haben, zum Beispiel ist der Modulname für MyApp.app tatsächlich "MyApp". Versuchen Sie einen Haltepunkt auf einen Namen Einstellung, die Sie kennen <product-name> sind dann break list tun und die Ausgabe wird:

1.1 where = ModuleName`symbol_name... 

Module ist, was Sie sich übergeben mögen.

Hinweis: Wenn ein Haltepunkt auf einem Symbolnamen, den Sie kennen, nicht an einem bestimmten Ort aufgelöst wird, können Sie die Binärdatei vor dem Debuggen entfernen. Sie können dies überprüfen, indem die binäre Suche (image list werden Sie diese auch sagen) und im Terminal laufen:

$ nm -ap <PathToBinary> 

, wenn Sie irgendeine Ausgabe hier nicht sehen, dann ist das binäre abgestreift zu werden. Sie müssen herausfinden, wer das tut und sie dazu bringt, aufzuhören ...

Verwandte Themen