Verwenden von 'Speicher analysieren' in Qt Creator

8

Ich verwende Qt Creator, um eine C ++ - Anwendung zu entwickeln, und ich versuche, einige Speicherlecks aufzuspüren.

Ich habe diese Anweisungen * verfolgt und Valgrind auf meinem Ubuntu-Computer installiert .

Ich beginne meine Anwendung aus dem Abschnitt Speicher analysieren, und nachdem ich auf die Stopp-Schaltfläche geklickt habe, wird mir gesagt, dass Tool Analyze Memory finished, 928 issues found . Im Analyseabschnitt, der leer bleibt, werden jedoch keine Ergebnisse angezeigt.

Mache ich etwas falsch? Wo finde ich die Ergebnisse der Speicheranalyse?

* Verwirrenderweise fragen die Anweisungen nach einer Build-Konfiguration für "release", aber wenn Sie diese Option auswählen, wird in Qt eine Warnung angezeigt, dass das Speicheranalyse-Tool eine Debug-Konfiguration erfordert. Ich habe beide Wege ausprobiert.

    
Bill Cheatham 12.12.2011, 11:31
quelle

2 Antworten

11

Ich habe es in meinem Qt Creator überprüft und es funktioniert. Ich benutze Version 2.3.1 mit Qt 4.7.4 und Valgrind 3.7.0. Ich habe es auf dem Beispiel einer Bohrstelle mit Debug Build-Konfiguration getestet. Ich habe es auch mit meinem CMake-basierten Projekt ( kompiliert mit -g) getestet und -OO Flags) und es hat auch funktioniert. Stellen Sie sicher, dass neben dem Start-Button Valgrind Memory Analyzer ausgewählt ist. In derselben Leiste finden Sie Pfeilsymbole. Neben ihnen ist Ikone des Trichters (denke ich). Klicken Sie darauf und stellen Sie sicher, dass die Arten von Fehlern, die Sie interessieren, überprüft werden.

Wenn es nicht funktioniert und Valgrind-Tools nicht von der Konsole verwendet werden sollen, gibt es andere Valgrind-GUIs wie Walküre.

BEARBEITEN: Ich habe Qt Creator auf Version 2.4.0rc1 aktualisiert und es mit meinem CMake-Projekt überprüft. Es zeigte auch keine Ergebnisse, während einige hundert Ausgaben gemeldet wurden. Lösung dafür war External errors nach dem Klicken auf das Trichtersymbol zu überprüfen.

EDIT2: Im letzten 2.4.0 Problem wurde behoben.

    
Maciej 12.12.2011 13:08
quelle
1

Du hast nichts falsch gemacht. Drücken Sie im Valgrind-Menü das Filter-Symbol und wählen Sie External Errors . Sie werden alle auftretenden Probleme sehen. Diese stammen höchstwahrscheinlich nicht von Ihrer Anwendung, sondern von Qt oder sonstwie. Daher können Sie sie oft ignorieren.

X issues found bezieht sich auf die Gesamtzahl der Ausgaben; Wenn External Errors nicht ausgewählt ist, werden nur die mit Ihrer App verknüpften angezeigt. Wenn keine angezeigt wird, hat Valgrind in Ihrer App keinen Speicherverlust festgestellt.

    
Jorge Leitão 19.06.2016 08:48
quelle