Der gesamte Testcode ist in main.cpp wie folgt enthalten:
%Vor% Ich kompiliere ohne Optimierungen -O0
(aus einem Eclipse Qt-Projekt) mit:
Verknüpfen Sie dann wie folgt:
%Vor%Ich führe die ausführbare Datei durch valgrind und erhalte die folgende Ausgabe:
%Vor% Ich glaube, dass valgrind ein Speicherleck melden sollte, anstatt dass Lecks aufgrund des Heap-Speichers, der in den Aufrufen von new int
EDIT: Code oben geändert, um std :: cout anstelle von qDebug () mit demselben Ergebnis zu verwenden
Wenn ich denselben Code (aus einem Eclipse-CDT-Projekt) ohne Qt-Abhängigkeiten kompiliere und verknüpfe, erkennt valgrind das Leck:
%Vor%Ich benutze Kubuntu 10.04 32 Bit und habe sowohl Debug- als auch Release-Builds ausprobiert, was mache ich falsch oder warum meldet Valgrind kein Speicherleck, wenn es mit Qt verlinkt ist?
Wahrscheinlich dein Compiler eliminiere diesen Code in der Optimierung, versuche das Kompilieren mit -O0 (ohne Optimierungsoptionen).
Als Kommentar wird bei debian lenny mit -O2 das Leck erkannt:
%Vor%Der Compiler:
%Vor%