Support Request #1615
closed
Exception within Qt Filter
Added by hidden about 6 years ago.
Updated about 6 years ago.
Requester's Priority:
Normal
Description
Supportanfrage
Sehr geehrte Damen und Herren,
zur Laufzeit erhalte ich durch einen eigenen Qt-Filter die Windows-Fehlermeldung "adtf_devenv.exe funktioniert nicht mehr". Beim Klick auf "Programm debuggen" zeigt VisualStudio die Meldung
"Unbehandelte Ausnahme:
Ausnahmefehler bei 0x000000007748F6B2 (ntdll.dll) in adtf_devenv.exe: 0xC0000374: Ein Heap wurde beschädigt (Parameter: 0x00000000774F7C70)".
In VisualStudio ist die Quelle nicht verfügbar, deshalb kann die genaue Stelle im Quelltext nicht ermittelt werden.
Der eigene Filter aktualisiert großteils Labels auf einem QWidget.
Lösung
Ein Display Update (hier ::setText()) darf nicht in der ::OnPinEvent Methode ausgeführt werden.
- Project changed from Public Support to 9
- Status changed from New to In Progress
- Topic set to ADTF::Common
- Status changed from In Progress to Customer Feedback Required
Hallo Lukas,
kann es sein, dass du deinen Qt-Filter Debug gebaut hast und ihn in ADTF RelWithDebInfo (<ADTF_DIR>\bin\adtf_devenv.exe) verwendest ?
Wenn ja, bitte baue ihn mal mit RelWithDebInfo und verwende diesen.
Meine erste Annahme deutet darauf hin, dass es ein Problem mit den Qt Libs gibt, denn diese 3rd Party Dependency gibt es ebenfalls in Debug und Release, siehe How can I use debug plugins using Qt ?
Sollte das nicht das Problem sein, kannst du uns bitte einen Dump zu kommen lassen (am besten mit <ADTF_DIR>\bin\debug\adtf_devenv.exe und entsprechender Debug Variante des Filters).
Zusätzlich würde uns der Code natürlich auch weiterhelfen.
Der Filter wurde mit "RelWithDebInfo" gebaut.
Seit ich nun die Änderung von Labels auf dem UI (mittels Label->setText(...)) aus der Funktion OnPinEvent in eine eigene Timer-Funktion des UI gesetzt habe taucht der Fehler nicht mehr auf, merkwürdig...
Sollte das Problem wieder auftauchen melde ich mich an dieser Stelle wieder.
Vielen Dank.
- Subject changed from adtf_devenv.exe funktioniert nicht mehr / Ausnahmefehler Qt-Filter to Exception within Qt Filter
- Description updated (diff)
- Status changed from Customer Feedback Required to To Be Closed
- Resolution set to Solved Issue
Hallo Lukas,
ja, der synchrone Call der OnPinEvent kann zu Problemen führen mit GUI Thread bzw. dem Qt Update (Qt macht hier eigene "Magic" und verwirft ggf. Komponeten im Anschluss, das kann zur Exception führen).
Deshalb sollte die OnPinEvent Methode keine Update Logik enthalten, siehe z.B. Example Media Description Display
Das ist aber mehr ein Qt "Problem" als ein ADTF Fall.
Aber hauptsache dir ist geholfen, Ticket kann geschlossen werden.
- Project changed from 9 to Public Support
- Status changed from To Be Closed to Closed
- Private changed from Yes to No
Also available in: Atom
PDF