[Qt338][WinXP] Pure Virtual Function Call

Alles rund um die Programmierung mit Qt
Antworten
bloody.albatros
Beiträge: 5
Registriert: 13. Juli 2007 07:42
Wohnort: Linz
Kontaktdaten:

[Qt338][WinXP] Pure Virtual Function Call

Beitrag von bloody.albatros »

morgen,

tja, auch mich hat dieser fehler ereilt. allerdings habe ich keinen dunst, wodurch er verursacht wird.
gleich vorweg, ich hab die alte qt-version, da wir dieses projekt noch auf MS VS6 laufen haben. und somit noch nicht auf die 4-er version umsteigen können.

weiters, ich hab mir auch schon die texte zum pure virtual function call durchgelesen und dementsprechend hab ich das kernproblem eingegrenzt.

beim absturz selbst steht er bei qframe.h und dann gehts über ins qwt, wo er punkte ausgeben will. zur selben zeit läuft nebenbei (also nicht im selben projekt) eine andere qt-anwendung. die ist allerdings stabil.

gibt es da erfahrungen oder ideen, wie ich den fehler eingrenzen könnte?
derzeit hab ich schon versucht, verschiedene qt und qwt versionen zu vermischen, hat aber alles nichts gebracht (und ja, ich hab zwischen den einzelnen versionen die alten sauber deinstalliert und gelöscht)

cheers,
gerrit

ich werke unter
- WinXP
- MS VS 6
- QT 3.3.8 (oder 3.3.4)
- qwt 4.0.2[/list][/list]
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schon mal einen Debugger gestartet?
bloody.albatros
Beiträge: 5
Registriert: 13. Juli 2007 07:42
Wohnort: Linz
Kontaktdaten:

Beitrag von bloody.albatros »

jo, klar, anders hätt ich ja auch nit den ursprung in qwt feststellen können.
nur, bei qwt bzw. qt werd ich jetzt nit reindebuggen. soviel vertrauen hab ich in die libs schon.
oder bin ich da zu blauäugig?

hab vielmehr irgendwelche äußeren störquellen in verdacht.
nur leider ist es eben nur ein verdacht und somit nit ausschlaggebend.

cheers,
gerrit
Des einen GUI, des anderen Leid ...
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

bloody.albatros hat geschrieben:oder bin ich da zu blauäugig?
Ja, bist Du :-) Obwohl, bei Qt3 hatten die Trolls noch viele Sicherheitsabfragen gegen NULL drin, bei Qt4 ist das zumindest bei vielen Dingen nicht mehr der Fall.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Uwe
Beiträge: 176
Registriert: 9. Oktober 2005 13:37
Wohnort: München

Beitrag von Uwe »

bloody.albatros hat geschrieben:jo, klar, anders hätt ich ja auch nit den ursprung in qwt feststellen können.
nur, bei qwt bzw. qt werd ich jetzt nit reindebuggen.
Darum geht es auch nicht, aber die Information um welche pure virtual Methode es sich handelt bzw. den Aufrufstack solltest Du schon posten.
Der erfahrene Anwender kann Dir da eventuell sofort sagen, ob der Stack tatsächlich "kaputt" ist, oder es sich doch um einen Programmfehler handelt.

Zumindest hast Du da bessere Chancen auf Unterstützung, wie mit "es geht nicht".

Uwe
bloody.albatros
Beiträge: 5
Registriert: 13. Juli 2007 07:42
Wohnort: Linz
Kontaktdaten:

Beitrag von bloody.albatros »

korrekter einwand, sorry

der letzte befehl im stack ist drawSymbols in qwt_curve.cpp
an den übergebenen parametern hätte ich keine fehlerquelle erkennen können.

thx,
gerrit
Des einen GUI, des anderen Leid ...
Uwe
Beiträge: 176
Registriert: 9. Oktober 2005 13:37
Wohnort: München

Beitrag von Uwe »

In der Regel hat man Aufrufe von pure virtual Methoden in Situationen in denen aus dem Destruktor der Basisklasse nochmal Funktionalität aufgerufen wird. Das passiert zumeist durch irgendwelche Signale/Events über Umwege.

Daher schau doch mal, ob in Deinem Stack weiter oben der Destruktor von QwtCurve steht.

Uwe

PS1: Warum ist es so schwierig den Stack zu posten ?
PS2: Warum nimmst Du eine so alte Qwt Version - Qwt 5.x läuft auch mit Qt 3.3.
bloody.albatros
Beiträge: 5
Registriert: 13. Juli 2007 07:42
Wohnort: Linz
Kontaktdaten:

Beitrag von bloody.albatros »

Uwe hat geschrieben: PS1: Warum ist es so schwierig den Stack zu posten ?
PS2: Warum nimmst Du eine so alte Qwt Version - Qwt 5.x läuft auch mit Qt 3.3.
howdy nochmals

zur antwort, warum kein stack gepostet ... zu eben jenen zeitpunkt meines postings war ich fern der heimat, sprich auf dienstreise und hatte keinen remote-zugriff auf den problem-rechner. musste also nur mit meinen mitschriften auskommen ... ansonsten kann ich schon mit c&p umgehen :wink:

und zur alten version ... hatte auch schon 5.x versucht. befürchte aber, dass der absturz auch von dem rumprobieren gekommen ist.
daher würd ich gerne meine frage neu formulieren:

wo hinterlassen qt und qwt beim installieren überall ihre spuren?

thx,
gerrit
Des einen GUI, des anderen Leid ...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

bloody.albatros hat geschrieben: wo hinterlassen qt und qwt beim installieren überall ihre spuren?
Nirgends ausser ein paar Einstellungen in der Reigstry (HKLM/HKCU/Software/Trolltech) - aber die sind unerheblich.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bloody.albatros
Beiträge: 5
Registriert: 13. Juli 2007 07:42
Wohnort: Linz
Kontaktdaten:

Beitrag von bloody.albatros »

schade, denn somit hat sich meine hoffnung zerschlagen, dass der absturz durch einen mix verschiedener versionen von qwt und qt entwickelt hat (zur erklärung, hab immer zwischendurch die qt deinstalliert und dann auch noch das gesamte qt-verzeichnis gekillt)

naja, bleibt mir wohl nix anderes übrig als dem hint mit den destruktoren nachzugehen.

thx und schönes wochenende!
gerrit
Des einen GUI, des anderen Leid ...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wie gesagt - der Backtrace sollte da eigentlich schon ausreichen.
Hast Du beim Deinstallieren auch geschaut dass nicht doch irgendwo durch Zufall eine alte Qt-Dll (z.B. c:\windows\system32) rumliegt? Aber das müsstest du auch beim Deubggen sehen - dort steht ja von woher die DLLs gezogen werden.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten