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
 
AuronTLG

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

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

  Alt 4. Dez 2024, 16:42
Zitat:
Dann musst du ja nur noch herausfinden, bei welcher Unit das passiert. Das geht relativ einfach. Schau dir die Finalisierung mal an. Da setzt du einen Haltepunkt mit Bedingung, dass ein bestimmter Durchlauf erreicht ist (ich glaube da gab es eine Variable i, also als Bedingung z.B. i > 100). Das setzt du dann hoch (sprich Bedingung ändern, F9, ändern, F9, ...), bis du den Durchlauf kennst, bei dem es passiert. Und dann gehst du mit F7 in diese Initialisierung rein.
Das ist ja gerade das Problem: Es wechselt. Ich habe da schon alle möglichen Units im Aufruf-Stack drin gehabt. Z.B. irgendwelches Imageen-Zeugs, WPTools-Zeugs, Indy-Zeugs oder was auch immer. Ich habs sicherheitshalber mal oft genug ausprobiert, um auszuschließen, dass das nur Drittanbieter-Units betrifft, und siehe da, momentan hängt die Exception in der Finalization von Xml.xmlutil, die ja delphi-eigen ist.
Das scheint völlig zufällig zu sein.

Ich wills nur sicherheitshalber nochmal zusammenfassen, einfach weil ich mit diesem Kram bisher noch nie herumschlagen musste und dementsprechend vielleicht etwas falsch verstehe:

Ich starte das Programm im Debugger, schließe es direkt in der Anmeldung wieder und halte bei der Exception, die dann kommt, an.
Daraufhin schaue ich mir den Aufrufstack des Hauptthreads an: Relativ konsistent ist, dass das Programm im System.FinalizeUnits steckt, doch die Details weiter oben im Stack wechseln. Ist halt immer irgendeine Finalization von verschiedenen Units, bei der dann etwas ziemlich mundänesknallt. Momentan z.B. ist es ein FinalizeRecord in XML.xmlutil.Finalization.
Wenn ich das Programm das nächste mal starte und bei der Exception halte, ist es was ganz anderes.

Das wirkt für mich so, als hätte ich allgemeineres Problem, was wechselnde Folgefehler verursacht oder interpretiere ich das Problem irgendwie falsch dahingehend, dass doch eine einzelne Unit der Schuldige sein müsste? Ich habe halt keine Ahnung, wie das FinalizeUnits bzw der gesamte Ablauf nach dem Terminate arbeitet.

Geändert von AuronTLG ( 4. Dez 2024 um 16:46 Uhr)
  Mit Zitat antworten Zitat
 


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 21:27 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