Kannst du es mal mit einem anderen Programm testen? Zum Beispiel mal explicit ein GetMem ohne zugehöriges FreeMem. Nur um zu schauen, wo das Problem eher liegt.
so, gerade das auf meinem Arbeitsrechner (Windows 10) getestet. Dort kann ich das nicht reproduzieren.
PascalDragon hat geschrieben: So 28. Mär 2021, 16:03
Kannst du es mal mit einem anderen Programm testen? Zum Beispiel mal explicit ein GetMem ohne zugehöriges FreeMem. Nur um zu schauen, wo das Problem eher liegt.
So, mein Testprogramm unter Linux geht auch, mein eigentliches Programm erzeugt die 0er. Ich habe jetzt die Einstellungen verglichen und das Problem gefunden.
Ist in den Einstellungen unter "Debuggen" die Option "Code für valgrind erzeugen (-gv)" aktiv, dann erscheinen die 0er. Ist diese Option aus, dann funktioniert alles einwandfrei. Warum diese Option aktiv ist weiß ich nicht, sicherlich nicht bewusst. Auf jeden Fall sollte es nicht zu diesem Ergebnis führen.
Ich934 hat geschrieben: Mo 29. Mär 2021, 17:23
Ich habe jetzt die Einstellungen verglichen und das Problem gefunden.
Ist in den Einstellungen unter "Debuggen" die Option "Code für valgrind erzeugen (-gv)" aktiv, dann erscheinen die 0er. Ist diese Option aus, dann funktioniert alles einwandfrei. Warum diese Option aktiv ist weiß ich nicht, sicherlich nicht bewusst. Auf jeden Fall sollte es nicht zu diesem Ergebnis führen.
DAS wird es auch bei mir sein! Hatte kurz mit valgrind experimentiert.
Ich934 hat geschrieben: Mo 29. Mär 2021, 17:23
Ist in den Einstellungen unter "Debuggen" die Option "Code für valgrind erzeugen (-gv)" aktiv, dann erscheinen die 0er. Ist diese Option aus, dann funktioniert alles einwandfrei. Warum diese Option aktiv ist weiß ich nicht, sicherlich nicht bewusst. Auf jeden Fall sollte es nicht zu diesem Ergebnis führen.
Das Problem ist, dass -gv dafür sorgt, dass der C Memory Manager (Unit cmem) verwendet wird. Und heaptrc kann eben nicht mit cmem zusammen verwendet werden. Trunk beschwert sich hier übrigens auch:
Ich934 hat geschrieben: Di 30. Mär 2021, 09:54
OK, das macht Sinn. Dann sollten sich diese Optionen in Lazarus aber auch gegenseitig ausschließen - ok das jetzt dann nicht mehr dein Part.
Wie gesagt, trunk beschwert sich hier mittlerweile. Und ich werd' schauen, dass ich das auch in 3.2.1 zurückziehe, damit der 3.2.2-final sich ebenfalls beschwert.
Ich934 hat geschrieben: Di 30. Mär 2021, 09:54
Aber auch die Meldung vom heaptrc sollte dann so nicht erscheinen. Eine Fehlermeldung als Ausgabe wäre hier imo sinniger...
heaptrc hat keine Ahnung was für ein Memory Manager verwendet wird. Deswegen haben wir uns ja auch dazu entschlossen die Kombination Valgrind & HeapTrc beim Kompilieren zu blockieren.
"Erzeugt einen Fehler" ist wenig hilfreich. Welchen Fehler?
TParadoxDataset gibt es zweimal. Eine Version kommt mit Lazarus und steht im Ordner components/paradox. Die andere Version steht im Lazarus-Components-and-Code-Repository im Order components/tpardoxdataset und hat zwei Packages mit identischem Inhalt: das für die Installation empfohlene heißt lazparadoxpkg.lpk, das andere lazparadox.lpk, hat aber einen Namenskonflikt mit dem Package aus der Lazarus-Installation.
Also genug Möglichkeiten, etwas falsch zu machen. Welches Package macht das Problem? Woher hast du es?