Valgrind auf Basis Qt-Anwendung: Berichte Masive Leaks

9

Ich wollte also sehen, was mit einer einfachen Qt4-Anwendung passieren würde, die aus einem einfachen Makefile kompiliert wurde, wenn sie durch Valgrind läuft. Was würde diese Lecks verursachen? Ich lösche alle dynamisch zugewiesenen Objekte an meinem Ende. Auch beim Beenden des Programms klicke ich nur auf das Schließen (X) oben in der oberen rechten Ecke. Sind GUI-Bibliotheken einfach nicht "free ()" irgendeinen Speicher, den sie malloc () 'd haben?

Das vom qmake Befehl reduzierte Makefile ist:

%Vor%

Der einzige Quellcode ist:

%Vor%

Wenn ich durch valgrind laufe, bekomme ich Folgendes (entfernter großer Teil in der Mitte):

%Vor%     
Matthew Hoggan 13.08.2011, 06:38
quelle

1 Antwort

3

Ich habe Ihre kurze Anwendung kompiliert und (unter Verwendung des visuellen Studio-CRT-Speicherleck-Detektors) konnte keine Speicherlecks finden. Also, was auch immer Valgrind-Berichte sind, hängt nicht direkt mit Ihrem Code zusammen.

Sie löschen jedoch den QPushButton, bevor die Anwendung tatsächlich ausgeführt wird. Normalerweise wird der Besitz von QWindows in das Elternfenster übertragen, so dass Sie die Objekte nicht selbst bereinigen müssen, das Elternfenster übernimmt das für Sie (wenn dies nicht der Fall ist, wird dies in der Dokumentation angegeben).

Um Ihren Code zu korrigieren, löschen Sie einfach das Löschen.

    
Tobias Schlegel 13.08.2011, 12:47
quelle

Tags und Links