Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#16

AW: Exception - Register + DataStack

  Alt 25. Mai 2022, 08:19
INT 3 triggert den angehängten Debugger (hängt kein Debugger dran, raut der Interuppt ab und das Programm wird beendet).
Der Debugger oder jeder Andere kann von einem anderem Thread/Prozess aus problemlos die Register auslesen, da der dort ablaufende Code keinen Einfluß auf die eigentlichen Register hat (der hat ja seine eigenen Register/ThreadContext, in dem er arbeitet)

Bei einer Fehlerbehandlung im eigenen Thread, wird dort Code ausgeführt, was die Register unweigerlich verändert.
Die einzige Lösung wäre gewesen, wenn Windows bei der Behandlung die Register in den ExceptionRecord kopieren täte, dann hätte man in der eigenen Fehlerbehandlung später Zugriff auf diese Kopie gehabt.
Wenn man also z.B. von in einem anderen Thread seine Fehlerbehandlung einbaut, sich dann von da als Debugger bei seinem eigenem Prozess dranhängt, dann hat han die Fehlerbehandlung in einem anderen Thread, von wo aus man drüben die Register auslesen kann, bevor dort weitergearbeitet wird.
Im Gegensatz zu den normalen Debuggern darf man natürlich nicht die anderen Threads anhalten (wenn man auf die Exception reagiert), bzw. zumindestens nicht sich selbst.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (25. Mai 2022 um 08:24 Uhr)
  Mit Zitat antworten Zitat