![]() |
Zugriffsverletzung mittels Adresse finden
Hi!
Wenn eine Zugriffsverletzung auftritt, steht in der Message ja immer, bei welcher Adresse sie auftritt und beim Lesen welcher Adresse, z.B. bei Adresse 004621E3 [...]. Lesen von Adresse 00004619. Kann man anhand dieser beiden Adressen die Fehlerquelle idenifizieren? |
Re: Zugriffsverletzung mittels Adresse finden
Eher Jain. Zumindest kannst Du herausfinden, welche Speichertstelle im Codesegment (und damit welcher Aufruf in Deiner Anwendung) den Fehler produziert hat und auf welche Speicheradresse sie zugreifen wollte. Was an dieser Speicherstelle nun wirklich ist, weisst Du nicht. Was da sein sollte kannst Du wahrscheinlich schon wieder aus dem Kontext heraus erkennen.
Einfacher wäre es, z.B. die Jedi's zu nehmen. Die haben ne recht gute Debug-Unit so dass Du wenn Du Deine Anwendung mit Debug-Informationen auslieferst sogar gleich die Unit und die Codezeile raustracen kann wenn eine unbehandelte Exception auftritt. Macht die Sache deutlichst einfacher: Du bekommst ein Textfile wo neben dem kompletten Callstack auch eben noch zusätzliche Informationen drinstehen. |
Re: Zugriffsverletzung mittels Adresse finden
Wenn du den gleichen Quellenstand noch hast aus dem die EXE mit der AV gebildet wurde, dann compiliere und starte das Programm in der IDE. Dann halte die Programmausführung an (z.B. das Pause Symbol in der IDE) und dann kannst du unter Suchen->Laufzeitfehler suchen... die Adresse 004621E3 eingeben und anschauen welche Stelle er dir zeigt.
|
Re: Zugriffsverletzung mittels Adresse finden
@Phoenix
koenntest du ein Beispiel posten, wie man das mit dem jedis machen kann? Ich finde mich da nicht wirklich zurecht und die Forensuche hat auch kein brauchbares Ergebniss geliefert. --win32 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 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