CLion: Debuggen von externen Bibliotheken durch Hinzufügen von Quelldateien

9

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?

    
Patrick 16.11.2016, 00:44
quelle

3 Antworten

3

Dies kann passieren, wenn libtins ohne Debug-Informationen erstellt wird. Wie genau bauen Sie es?

Es sollte ungefähr das Folgende sein:

%Vor%     
Eldar Abusalimov 16.11.2016 19:36
quelle
1

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:

%Vor%

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.

    
oLen 31.01.2017 11:56
quelle
0

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:

%Vor%

Weil BIO_new in BIO_new implementiert ist, das sich im vorherigen Ordner befindet.

Jetzt können Sie in Ihren Bibliothekscode eintreten.

    
Jaime Hablutzel 28.02.2018 21:55
quelle

Tags und Links