AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Exception (Bei Jedi?), aber nicht auf jedem PC
Thema durchsuchen
Ansicht
Themen-Optionen

Exception (Bei Jedi?), aber nicht auf jedem PC

Ein Thema von sECuRE · begonnen am 29. Dez 2004 · letzter Beitrag vom 13. Feb 2005
Antwort Antwort
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#1

Exception (Bei Jedi?), aber nicht auf jedem PC

  Alt 29. Dez 2004, 12:55
Hi,

ich hab ein recht unangenehmes Problem: In meinem Projekt tritt auf meinem Laptop ab und zu eine Zugriffsverletzung auf, wenn die Verbindung per TIdTCPClientSocket nicht hergestellt werden kann. Das Laptop hat einen P4 2,8 mit Hyperthreading, ich verwende Threads um mich zu verbinden - eventuell liegt da ja das Problem. Auf meinem Haupt-PC tritt das Problem nicht auf. Die Exception lautet folgendermaßen:

Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt irc.exe ist eine Exception der Klasse C0000005 aufgetreten. Meldung: 'Zugriffsverletzung bei 0x74db1abb: Lesen von Adresse 0x0105e818'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------

Mein code lautet folgendermaßen:
Delphi-Quellcode:
TDataThread = class(TThread)
  private
   fSocket: TidTCPClient;
   fForm: TStatusForm;
  protected
   procedure Execute; override;
  public
   constructor Create(Socket: TidTCPClient; ff:TStatusForm);
  end;

constructor TDataThread.Create(Socket: TidTCPClient; ff:TStatusForm);
begin
 inherited Create(false);
 fSocket:=Socket;
 fForm:=ff;
 FreeOnTerminate:=true;
end;

procedure TDataThread.Execute;
begin
 while not terminated do begin
  TStatusForm(fForm).ConnectToServer('',-1);
  Terminate;
 end;
end;

// ...

procedure TStatusForm.ConnectToServer(name:string; port:integer);
begin
try
 ClientSocket.Connect;
except
 ShowMessage('Exception beim Connecten');
end;
end;
Die Exception beim connecten wird ausgelöst, was auch nicht verwunderlich ist, da ich als server localhost angegeben hab, aber kein Server läuft. Allerdings kommt wie gesagt beim Laptop ab dem 3. oder 4. Mal (unregelmäßig) eine Exception in Riched20.dll oder die oben angegebene.. Halte ich allerdings für einen Folgefehler. Weiterhin sagt er mir ab und zu, dass eine Division durch Null ausgelöst wurde, was ja bei den JCL-Libs das Problem war AFAIK? Ich verwende JVCL 3.0 Beta 2 und JCL 2.10.

Falls mehr Infos benötigt werden, einfach fragen

Vielen Dank & cu
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Exception (Bei Jedi?), aber nicht auf jedem PC

  Alt 29. Dez 2004, 14:31
Probier mal mittels SetProcessAffinityMask dein Programm nur auf einen Prozessor laufen zu lassen.
Ich hatte schon mal die unangenehme Erfahrung (mit einem MFC-Programm) welches bei Netzwerkkommunikation und mehreren Prozessoren nicht funktionierte.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#3

Re: Exception (Bei Jedi?), aber nicht auf jedem PC

  Alt 30. Dez 2004, 15:26
Hi,

das scheint zu funktionieren, ich hab das mal im Taskmanager getestet mit "Zugehörigkeit setzen". Allerdings krieg ich's nicht auf die Reihe, die Zugehörigkeit mittels der Delphi-Funktion zu setzen, ich bin nicht so fit in WinAPI

Könntest du ein Beispiel geben, wie ein Aufruf der Funktion aussehen muss, um das Programm nur auf CPU 0 laufen zu lassen?

Vielen Dank & cu
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#4

Re: Exception (Bei Jedi?), aber nicht auf jedem PC

  Alt 30. Dez 2004, 16:03
Wenn du schon die JCL benutzt, warum setzt du dann nicht JCL Debug Data und den JCL Exception Dialog ein?
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#5

Re: Exception (Bei Jedi?), aber nicht auf jedem PC

  Alt 30. Dez 2004, 16:06
Hi,

hab ich schon probiert, allerdings wird die Exception wohl doch nicht durch die JCL ausgelöst, außerdem ist es ja nicht immer die selbe.

cu
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#6

Re: Exception (Bei Jedi?), aber nicht auf jedem PC

  Alt 13. Feb 2005, 19:30
Hi,

folgender Code scheint geholfen zu haben - bin mir aber nicht sicher. Falls doch nicht werde ich das hier berichten.
SetProcessAffinityMask(Handle, 0); Danke für alle Beiträge.
cu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz