Project

General

Profile

Actions

Support Request #1615

closed

Exception within Qt Filter

Added by hidden about 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Normal
Customer:
DAIMLER
Department:
TP/EMD
Requester's Priority:
Normal
Support Level:
2nd Level
Resolution:
Solved Issue
Affected Products:
Platform:
Windows 7 64bit
Topic:
ADTF::Common
FAQ Links:

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.

Actions #1

Updated by hidden about 5 years ago

  • Project changed from Public Support to 9
  • Status changed from New to In Progress
  • Topic set to ADTF::Common
Actions #2

Updated by hidden about 5 years ago

  • 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.

Actions #3

Updated by hidden about 5 years ago

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.

Actions #4

Updated by hidden about 5 years ago

  • 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.

Actions #5

Updated by hidden about 5 years ago

  • Project changed from 9 to Public Support
  • Status changed from To Be Closed to Closed
  • Private changed from Yes to No
Actions

Also available in: Atom PDF