AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]
Thema durchsuchen
Ansicht
Themen-Optionen

Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]

Ein Thema von AuronTLG · begonnen am 4. Dez 2024 · letzter Beitrag vom 5. Dez 2024
Antwort Antwort
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
321 Beiträge
 
Delphi 12 Athens
 
#1

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]

  Alt 4. Dez 2024, 09:53
Damit habe ich eben mal etwas herumprobiert.
Im Debugger bekomme ich nicht immer dasselbe, aber beim am häufigsten auftretenden Fehler hält er tief in der CPU.
Der Stacktrace sieht in diesem Fall von oben nach unten mehr oder weniger folgendermaßen aus:

Zitat:
C:\WINDOWS\SysWOW64\user32.dll
user32.SendMessageW + 0x46
Vcl.Controls.DestroyChildWindow(???,???)
user32.EnumChildWindows + 0x8c
Vcl.Controls.TWinControl.DestroyHandle
Vcl.Controls.TWinControl.CMRecreateWnd(???)
Vcl.Controls.TControl.WndProc(???)
Vcl.Controls.TWinControl.WndProc((45107, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TControl.Perform(???,???,0)
Vcl.Forms.TCustomForm.WndProc((45145, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TWinControl.MainWndProc(???)
System.Classes.StdWndProc(2820586,45145,0,0)
C:\WINDOWS\SysWOW64\user32.dll
user32.SendMessageW + 0x46
Vcl.Themes.TStyleManager.SetStyle(???)
Vcl.Styles.Finalization
System.FinalizeUnits
System._Halt0
Ich bin mir dabei nicht sicher, wie sehr ich mich auf diesen Fehlerstack versteifen sollte. Ich verwende VCL-Styles, habe an diesen aber im Vergleich zu vorigen Version eigentlich nichts geändert. Wenn diese Exception mein Problem sein sollte, kann das vielleicht auch ein Folgefehler sein?

Ergänzung: Wegen Optimierung kann ich im Debugger leider keine genaueren Information dazu sehen, was da genau passiert, wie z.B. welche WinControl etc das ist.

Geändert von AuronTLG ( 4. Dez 2024 um 09:56 Uhr)
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
667 Beiträge
 
Delphi 12 Athens
 
#2

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]

  Alt 4. Dez 2024, 10:07
Hast du die Debug-DCUs eingeschaltet? Falls nicht, mach das mal, dann landest du ggf. an einer aussagekräftigeren Stelle und kannst dich besser an die Stelle in deinem Code hangeln, wo das Problem auftritt.
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
321 Beiträge
 
Delphi 12 Athens
 
#3

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]

  Alt 4. Dez 2024, 10:14
Debug-DCUs sind angeschaltet.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.901 Beiträge
 
Delphi 12 Athens
 
#4

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]

  Alt 4. Dez 2024, 10:23
Deaktiviere am besten mal testweise die Styles.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
321 Beiträge
 
Delphi 12 Athens
 
#5

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]

  Alt 4. Dez 2024, 10:39
Mit deaktivierten Styles tritt das Problem immer noch auf, war also ein Folgefehler; die Exception, bei der er im Debugger anhält, ist jedoch anders.
Anhalten tut er natürlich in der CPU, der Stack sieht aber dann folgendermaßen aus:

Zitat:
:09703206
:0970232c
:0964a82e
:76807ba9 KERNEL32.BaseThreadInitThunk + 0x19
:779ec0cb ntdll.RtlInitializeExceptionChain + 0x6b
:779ec04f ntdll.RtlClearBits + 0xbf
Da das alles in der CPU hängt, kann ich da leider nicht viel mehr rauslesen.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
697 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]

  Alt 4. Dez 2024, 11:22
Hey, nach dem was du beschreibst würde ich darauf tippen das ein anderer Thread nicht mitbekommen hat dass der Main Thread nicht mehr existiert und noch fröhlich Daten sendet.
Das kann immer passieren. Deshalb sollte jeder Thread ein ordentliches Fehlerhandling haben damit das nicht bis ins System durchrauscht.
Application.Terminate ist generell keine Lösung zum geregelten Beenden eines Programms.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.901 Beiträge
 
Delphi 12 Athens
 
#7

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]

  Alt 4. Dez 2024, 13:11
Da das alles in der CPU hängt, kann ich da leider nicht viel mehr rauslesen.
Hast du alle Threads durchgeschaut?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
321 Beiträge
 
Delphi 12 Athens
 
#8

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]

  Alt 4. Dez 2024, 14:34
Zitat:
Hast du alle Threads durchgeschaut?
Jo. Zum Zeitpunkt der Exception gibt es abgesehen vom Hauptthread nur Systemthreads (Kernel32, ntdll, win32...), von denen die meisten auf irgendeiner Form von WaitFor stehen.
Die erste Exception tritt leider nicht immer genau gleich an der selben Stelle auf, sondern immer bei irgendeiner Art von Finalization.
Recht häufig war das z.B. die Finalization vom WPViewPDF, aber nicht nur, weswegen ich das eher als Folgefehler ansehen würde, genau wie vorher Styles, die ich momentan deaktiviert habe.
Der einzige größere Zusammenhang ist, dass unten im Stack immer System.FinalizeUnits zu laufen scheint.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz