Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie richtig nach dem Fehler suchen...!? (https://www.delphipraxis.net/39385-wie-richtig-nach-dem-fehler-suchen.html)

m0sch3r 1. Feb 2005 22:13


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....!?

Nikolas 1. Feb 2005 22:17

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.

supermuckl 1. Feb 2005 22:21

Re: Wie richtig nach dem Fehler suchen...!?
 
gibts da net ein tool wo mir die addresse zu der delphi sourcecode zeile umrechnet und anzeigt ?

m0sch3r 1. Feb 2005 22:25

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....!!!

CReber 1. Feb 2005 22:52

Re: Wie richtig nach dem Fehler suchen...!?
 
Als erstes würde ich suchen was der Fehlercode bedeuted. (#10057 o. #.)


Zitat:

Where can I find Socket error messages explanations, like Socket error 10057?
Previous Top Next

The error codes are listed in Winsock.pas as constants. A full error descriptions can be found at http://www.sockets.com/a_c.htm.
Zum zweiten sind Fehler mit vielen nullen oft Initialisierungsfehler ;) Wie auch immer man das nennen will ich meine damit das man irgendwas normales vergessen hat wie die das Client := TIndyTCPClient.Create oder if Client <> nil oder oder oder ... ;)

m0sch3r 2. Feb 2005 13:16

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..

Robert Marquardt 2. Feb 2005 13:59

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. http://jcl.sf.net
Die darin enthaltene Debug-Extension erzeugt das Map-File und erzeugt bei einer exception dann einen Stack-Trace mit Zeilennummern.

m0sch3r 2. Feb 2005 15:20

Re: Wie richtig nach dem Fehler suchen...!?
 
Zitat:

Zitat von Robert Marquardt
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. http://jcl.sf.net
Die darin enthaltene Debug-Extension erzeugt das Map-File und erzeugt bei einer exception dann einen Stack-Trace mit Zeilennummern.

köntest du das in einzelnen schritten beschreiben....
die JDL habe instaliert (halbwegs)..leider sehe ich keine möglichkeit sie bei meinem problem anzuwenden....!!!

shmia 2. Feb 2005 15:35

Re: Wie richtig nach dem Fehler suchen...!?
 
Zitat:

Zitat von m0sch3r
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 ..

Schau mal in diesem Tutorial: http://www.delphipraxis.net/internal...ct.php?t=21086
die aktuelle Version ist kurz vor Ende des Threads

m0sch3r 2. Feb 2005 15:43

Re: Wie richtig nach dem Fehler suchen...!?
 
Zitat:

Zitat von shmia
Zitat:

Zitat von m0sch3r
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 ..

Schau mal in diesem Tutorial: http://www.delphipraxis.net/topic21086
die aktuelle Version ist kurz vor Ende des Threads

Fehler: 404 - Datei nicht gefunden ....:(((

Binärbaum 2. Feb 2005 15:57

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:

Robert Marquardt 2. Feb 2005 18:36

Re: Wie richtig nach dem Fehler suchen...!?
 
Zitat:

Zitat von m0sch3r
köntest du das in einzelnen schritten beschreiben....
die JDL habe instaliert (halbwegs)..leider sehe ich keine möglichkeit sie bei meinem problem anzuwenden....!!!

Das klingt danach als ob du Mist gebaut haettest.
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.

m0sch3r 9. Feb 2005 20:01

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:
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TOptions_Form, Options_Form);
  Application.Run;
end.
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...!!!


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