![]() |
Wie richtig nach dem Fehler suchen...!?
in meinem programm wird nach einem download sehr oft eine EAccessViolation ausgelöst...!!!
ich weis nicht genau an welcher stelle das passiert, das programm läuft weiter und ich bekomme nur ein Fenster angezeigt mit der hinweisung auf eine EAccessViolation an adresse 0000000C .. Gibt es eine methode zu verfolgen, an welcher stelle das ausgelöst wird, eventuel durch das CPU debug Fenster des Delphi....!? |
Re: Wie richtig nach dem Fehler suchen...!?
Du kannst nach dem Compilieren per F8 einen Haltepunkt in dein Programm setzen (die Zeile wird dann rot). Sobald dann dein Programm diese Zeile ausführen will, hält es an. Dann kannst du per F7 diese Zeile ausführen lassen. Für die nächste Zeile musst du dann wieder F7 drücken und hangelst dich dann so durch dein Programm.
|
Re: Wie richtig nach dem Fehler suchen...!?
gibts da net ein tool wo mir die addresse zu der delphi sourcecode zeile umrechnet und anzeigt ?
|
Re: Wie richtig nach dem Fehler suchen...!?
mit dem normalen debuger (F8, F7, F5), komme ich dem problemm nicht nahe....!!!
Das komische ist das programm läuft weiter ohne jegliche fehler - nur diese meldung...!!! Vieleicht ist das auch ein Indy problemm....!!! |
Re: Wie richtig nach dem Fehler suchen...!?
Als erstes würde ich suchen was der Fehlercode bedeuted. (#10057 o. #.)
Zitat:
|
Re: Wie richtig nach dem Fehler suchen...!?
ich glaube ich hätte das Problemm viel ausführlicher beschreiben sollen...!!!
es ist kein socket fehler, die socket fehler werden abgefangen im onExcepiton ereignis des FTP servers, und beim client jewels mit try - excetp. Meine Frage war wenn ich die adreesse habe wo das ausgelöst wird bzw den thried, wie kann ich dann die stelle im source code finden...!? mit mennu -> suchen -> zu adreesse gehen wird der speicher abbild angezeigt nicht aber der source selber....!!!! Danke im Voraus.. |
Re: Wie richtig nach dem Fehler suchen...!?
So eine Adresse wie 000000C deutet an das du ein Objekt benutzt nachdem sein Zeiger auf nil gesetzt worden ist.
Gleich am Anfang liegt die Methodentabelle und nil + Offset der aufgerufenen Methode ergibt solch niedrige Werte. Was du brauchst ist die Jedi Code Library. ![]() Die darin enthaltene Debug-Extension erzeugt das Map-File und erzeugt bei einer exception dann einen Stack-Trace mit Zeilennummern. |
Re: Wie richtig nach dem Fehler suchen...!?
Zitat:
die JDL habe instaliert (halbwegs)..leider sehe ich keine möglichkeit sie bei meinem problem anzuwenden....!!! |
Re: Wie richtig nach dem Fehler suchen...!?
Zitat:
![]() die aktuelle Version ist kurz vor Ende des Threads |
Re: Wie richtig nach dem Fehler suchen...!?
Zitat:
|
Re: Wie richtig nach dem Fehler suchen...!?
Wenn man schon eine Vermutung hat, in welcher Zeile bzw. in welchen Zeilen der Fehler steckt, kann man die betreffende Zeile ja auch auskommentieren und dann neu kompilieren. Wenn jetzt der Fehler nicht mehr auftritt, weiß man, dass es an der auskommentierten Zeile lag.
(Ja ich weiß: das ist ziemlich primitiv, und eventuell kommt man mit Breakpoints besser, aber es ist einen Versuch wert) MfG Binärbaum //Edit: :o Mein 100. Beitrag auf DP :cheers: |
Re: Wie richtig nach dem Fehler suchen...!?
Zitat:
Wen du im JCL-Installer "VCL Exception Dialog" und"Debug Extension" aktiviert hast, dann solltest du einen neuen Menuepunkt unter "Projects" haben und unter "New..." kannst du einen Exception-Dialog hinzufuegen. |
Re: Wie richtig nach dem Fehler suchen...!?
Das Alte problemm ist gelöst, jezt habe leider eins was 10 mal schwirieger ist..:)))
Es ist eine AccessViolation, die immer ZUM SCHLUS...!!! des programms kommt, und zwar nach dem block
Delphi-Quellcode:
Weis jemannd wie ich die abfangen kann bzw finden..!? das es keine Excepiton ist kann ich auch keine try -except an kritischen Stellen einbauen um sie auswendig zumachen, zu dem kommt sie auch noch nach dem Programmende...!!!
begin
Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TOptions_Form, Options_Form); Application.Run; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 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