Ich verwende CLion 2016.2.2 und möchte eine Methode in der Bibliothek libtins debuggen. Es sieht jedoch so aus, als ob die Quellen nicht verfügbar sind, da der Debugger beim Versuch, in die Methoden von libtins zu springen, nicht in die aktuelle Ansicht geht und diese nur aktualisiert.
Ich habe versucht, dem Vorschlag in diesem Beitrag zu folgen include_directories("/home/patrick/libtins/")
oder include_directories("/home/patrick/libtins/src/")
wobei libtins der Stammordner ist, der aus dem libtins-Repository geklont wurde. Aber CLion konnte die mit der libtins-Bibliothek verknüpften Quelldateien immer noch nicht finden.
Meine CMake-Datei sieht folgendermaßen aus:
%Vor%Was genau muss ich ändern, damit CLion die Quelldateien für das Debugging verfügbar macht?
Dies kann passieren, wenn libtins ohne Debug-Informationen erstellt wird. Wie genau bauen Sie es?
Es sollte ungefähr das Folgende sein:
%Vor%Der einfachste Weg, dies zu tun, besteht darin, libtins direkt in Ihrem Projekt zu erstellen. Da libtins auch mit CMake erstellt werden können, ist dies am schnellsten, wenn Sie ein Verzeichnis mit dem Namen% co_de hinzufügen % in Ihrem Quellverzeichnis, das die libtins Quelle enthält, und fügen Sie es mit
in Ihr Projekt ein %Vor%Dazu müssen Sie auch die Abhängigkeiten von libtins erfüllen.
Dann brauchen Sie libtins
nicht mehr, da es bereits in Ihrem Projekt vorhanden ist. Um es zu verknüpfen, sollte das folgende tun:
Vergessen Sie nicht, die Dosenverzeichnisse vorher einzuschließen:
%Vor%Nachdem Sie Ihr Programm im Debug-Modus ausgeführt haben, sollten die libtins-Methoden ebenfalls verfügbar sein, da es identisch für Ihr Projekt erstellt wurde.
Beachten Sie, dass ich eine andere Strategie wählen würde, wenn Sie libtins langfristig in Ihr Projekt einbeziehen möchten. Dann würde ich lieber nach einer Lösung mit dem Befehl FIND_LIBRARY(TINS_LIBRARY tins)
suchen.
Folgendes funktionierte für mich in Ubuntu 16.04.3 LTS mit CLion 2017.3.3.
Zuerst müssen Sie das gebündelte% c1_de% von CLion durch das Original von Ubuntu ersetzen (nicht sicher warum):
%Vor%Starten Sie dann die Debugsitzung, indem Sie einen Haltepunkt setzen, bevor Sie in den Bibliothekscode einsteigen.
Wenn die Ausführung an Ihrem Haltepunkt angehalten wird, wechseln Sie zur Registerkarte "GDB-Konsole" und führen Sie diesen Befehl auf den vollständigen Pfad aus, in dem sich der zu debuggende Quellcode befindet. Um beispielsweise die OpenSSL-Funktion gdb
zu debuggen, musste ich Folgendes tun:
Weil BIO_new
in BIO_new
implementiert ist, das sich im vorherigen Ordner befindet.
Jetzt können Sie in Ihren Bibliothekscode eintreten.