Autor Beitrag
hui1991
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 433

Windows XP, WIndows Vista
Turbo Delphi Explorer| Delphi, PHP,Blitzbasic
BeitragVerfasst: Mi 30.08.06 18:39 
Hallo,

Ich möchte fragen, ob es eine Möglichkeit ist an der Stelle, wo ein Error ausgelöst wurde, das ich erkennen kann warum es so ist. Also es sind Fehler vorgekommen, das er eine Zahl in eine Variable eine Null eintragen wollte, obwohl es nur von 1 bis 2147483648 geht.
Könnte man die Variable, die diesen Fehler gemacht hat, irgendwie erkenntlich machen.
Damit dieser Fehler nicht mehr auftaucht.
z. B. das Alle Variablen auch von den Objekten in eine Protokoll-Datei geschrieben werden.
Damit ich schauen kann was falsch ist. Gibt es da irgendwie eine Lösung.
Weil die ganzen Variablen zu überwachenlassen ist ja schon viel. Wenn jede Zeile diese geänderte Variable eingetragen wird. Soll ja nur anzeigen, wenn ein Fehler auftaucht.
Was vorgekommen ist, schon das nicht's in einen Integer schreiben wollte. BLos ich weiß ja leider nicht bei welcher Variable. Kann man es irgendwie anschauen was da falsch ist?
Bei Delphi Debugger ist doch dieser CPU verstehe ich noch nicht so ganz.

Danke schonmal im Voraus.

MfG
hui1991
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mi 30.08.06 19:53 
Du kannst doch mit dem Delphi-Debugger Zeile für Zeile abarbeiten. Weiterhin kannst Du mit 'OutputDebugString' Ausgaben erzeugen, die mit dem 'Ereignis-Fenster' von Delphi (oder jeder anderen Debugkonsole) angezeigt werden können.

Eine saftige Prise Nachdenken und Sorgfalt hilft natürlich im Vorfeld enorm :wink:

_________________
Na denn, dann. Bis dann, denn.
hui1991 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 433

Windows XP, WIndows Vista
Turbo Delphi Explorer| Delphi, PHP,Blitzbasic
BeitragVerfasst: Mi 30.08.06 20:32 
Danke für die Antwort,
Naja, aber der Fehler tratt mal im Debuger auf, blos der Zeigt mir leider nicht wo der Fehler ist :( Sonst würde ich ja net Fragen ;)
Das kommt dann, wenn er wartet und dann bei Null ankommt, denke das es die Null ist.
Blos dann kommt der Fehler, das ein String der '' beinhaltet (also leer ist) in einen Integer gewandelt werden soll. Normal ist das ja auch eine Zahl.
Ich weis leider nicht wie ich jetzt Herausbekomme, wegen was dieser FEhelr kommt.

Auserdem hab ich einen Fehler entdeckt.
Es kommt zum Socket Error. Das Passiert denke ich, wenn zwei Programme gleichzeitig mit Indy auf das Internet zugreifen. Kann man es so machen, das es überprüfen soll ob es geht, wenn es nicht geht soll er paar sekunden warten und nochmal versuchen. Naja das warten ist ja kein Problem, blos die überprüfung ob es geht.

Wie funktioniert das 'OutputDebugString', hab den Begriff noch nicht gehört und weis auch net wie ich das mache.

Könnt ihr mir da helfen?

MfG
hui1991
_frank_
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 343
Erhaltene Danke: 1

Win XP
Delphi 3 Prof / Turbo Delphi Explorer
BeitragVerfasst: Mi 30.08.06 20:43 
einfach eine zeile wie diese in den quelltext einfügen

ausblenden Delphi-Quelltext
1:
outputDebugString(PChar('mein text'));					


natürlich kannst du den string auch mithilfe von IntToStr/FloatToStr/Format/... zusammenbasteln

wenn die Delphi-IDE auf ist, fängt diese die Nachrichten ab, egal, ob diese angezeigt werden oder nicht.
außerhalb der IDE kannst du z.b. DebugView (www.sysinternals.com) verwenden, um die Nachrichten anzuzeigen.

HTH Frank

_________________
EB FE (die wahrscheinlich kürzeste Endlosschleife der Welt :) )
BA 01 00 00 00 52 EB 09 BB 4D 11 86 7C FF D3 EB 0D E8 F2 FF FF FF 63 68 61 72 6D 61 70 00 C3
hui1991 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 433

Windows XP, WIndows Vista
Turbo Delphi Explorer| Delphi, PHP,Blitzbasic
BeitragVerfasst: Mi 30.08.06 20:56 
Ist natürlich sehr schwer diese Meldung zu erwischen, da ich sie verbessert hab.
Also das die MEldung geringer ist, aber sie sollte halt garnicht kommen.
Weil, wenn die Meldung kommt, stopt es nur meine Anwendung.
Und dann kommt es zu fehlern.
Naja das PRoblem wäre behoben, wenn die Fehler nicht als Dialog kommen, sondern in eine Memo rein geschrieben werden.
Weil der Rest kann nur mein Programm stoppen.
Wie kann ich das machen.
Irgendwie die Fehler deaktivieren.
Das keine mehr angezeigt werden.
Dann wäre mein Problem teilweise gelösst.
Und wie kann ich mit Indy mehrmals aufs internet zugreifen.
Zumindest so, das es keine Meldung gibt.
Das PRogramm soll funktionieren und diese Fehler sind halt das PRoblem.

MfG
hui1991
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 02.09.06 10:58 
Wenn in der Meldung eine Laufzeit-Adresse steht, gehst Du einfach mal auf "Suche \ Laufzeitfehler" oder unter Ansicht auf Debug-Fenster und wählst dort den Aufrufstack ... Dort klickst Du auf einen der oberen beiden Einträge ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.