AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EurekaLog + TCSIdCriticalSection

Ein Thema von stahli · begonnen am 17. Aug 2011 · letzter Beitrag vom 17. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#1

EurekaLog + TCSIdCriticalSection

  Alt 17. Aug 2011, 08:51
Hallo alle,

ich habe mir gestern mal die EurekaLog-Trial geladen und bin ja begeistert. So konnte ich auf Anhieb einen Fehler eingrenzen, der auf einem Fremdrechner auftrat und den ich sonst wohl wochenlang hätte suchen müssen...

Also ich denke, das Tool ist mal einen Blick wert.
http://www.eurekalog.com/index_delphi.php

Eine Frage:
In einer Unit zeigt mir EurekaLog ein Speicherleck.
Im Bild habe ich mal testweise zwei weitere Lecks erzeugt um den Ort einzuschränken. Dieser ist entweder auf finalization (normalerweise) oder auf end (wenn ich finalization entferne).
Ich habe nachts 3 Uhr dann aufgegeben und nur noch festgestellt, dass es an einer benutzten Unit und TCSIdCriticalSection liegen muss.
Kann jemand so schon näheres sagen?

FastMM hat nix bemeckert.
Miniaturansicht angehängter Grafiken
eu2.png  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von ehX
ehX

Registriert seit: 11. Aug 2011
Ort: Augsburg
55 Beiträge
 
Delphi 2009 Professional
 
#2

AW: EurekaLog + TCSIdCriticalSection

  Alt 17. Aug 2011, 09:40
Vielleicht ist das ein Hinweis:

Zitat:
The Indy components have the compiler directive IDFREEONFINAL which
normally is not defined.

If it is defined the objects IdStack and IdThread should be freed on
finalization otherwise not.
Quelle: hier
Fin
  Mit Zitat antworten Zitat
Benutzerbild von ehX
ehX

Registriert seit: 11. Aug 2011
Ort: Augsburg
55 Beiträge
 
Delphi 2009 Professional
 
#3

AW: EurekaLog + TCSIdCriticalSection

  Alt 17. Aug 2011, 09:52
Ich habe hier gerade etwas getestet:
Es scheint so, dass EurekaLog die Leaks der Indy-Unit "TCSIdCriticalSection" nicht als "Borland-Leak" erkennt, andere Leaks von anderen Indy-Units jedoch schon.

Mein Test:
Einfach mal die Unit "IdFTP" eingebunden und in EurekaLog die "Leak Detection" eingeschaltet => kein Leak wird beim Beenden des Programms reported.
Dann habe ich in den EurekaLog Options den Haken von "Hide Borland Leaks" entfernt und nochmal getestet => Leak in Unit "IdStack" wird am Ende reported.

Meiner Meinung nach sieht das so aus, dass Indy generell ein paar Leaks in der Initialization-Phase hat, Eurekalog aber einige bekannte Leaks in Indy ausblendet, wenn man "Hide Borland Leaks" eingeschaltet hat, jedoch nicht alle, und zu denen gehören wohl die Leaks in der Unit "TCSIdCriticalSection".
Fin
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: EurekaLog + TCSIdCriticalSection

  Alt 17. Aug 2011, 10:01
Hmm, Indys setze ich nicht ein.

Folgende Units werden genutzt:
Delphi-Quellcode:
unit od_prop;

interface

uses
  Classes, Contnrs, od, Generics.Collections;

...

implementation

uses
  Windows, Math, SysUtils, RTTI, TypInfo;
Muss ich heute Abend mal schauen.

EDIT: Danke für den Tip mit "Hide Borland Leaks"!


Was mir noch eingefallen ist: Es wäre nett, wenn EurekaLog gleich noch eine Reportmöglichkeit implementieren würde:
Eureka.Send('MyInfoA');
Eureka.Send('MyInfoB');
So könnte man sich bei einer Fehlersuche gleich noch ein paar zusätzliche Infos und Werte übermitteln.

Gibt es das (und ich habe es gestern noch nicht entdeckt) oder ist da etwas geplant?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#5

AW: EurekaLog + TCSIdCriticalSection

  Alt 17. Aug 2011, 10:04
ich nutze auch Eurekalog, ich nutze das Feature zwar nicht aber du kannst auch eigene interne Werte mit dem Fehlerprotokoll verschicken. Schau mal in der Doku nach oder im Forum.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: EurekaLog + TCSIdCriticalSection

  Alt 17. Aug 2011, 10:11
Ja, EurekaLog ist echt ein feines Tool. Hat mir gerade geholfen eine Endlosschleife zu identifizieren.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von ehX
ehX

Registriert seit: 11. Aug 2011
Ort: Augsburg
55 Beiträge
 
Delphi 2009 Professional
 
#7

AW: EurekaLog + TCSIdCriticalSection

  Alt 17. Aug 2011, 10:26
Zitat:
Gibt es das (und ich habe es gestern noch nicht entdeckt) oder ist da etwas geplant?
Gibt es. Ich mache das meistens so, dass ich mir beim Auftreten einer Exception ein eigenes, kleines Log schreibe, das dann mitgesendet wird:

1) TEurekaLog-Komponente auf die Form werfen
2) OnExceptionNotify zuweisen, in dieser Routine dann einfach ein kleines Log schreiben, in dieses kannst du alles schreiben, was du wissen willst (Var-Dumping, Zusatzinfos etc.)
3) In den EurekaLog-Optionen unter "Send Options" bei "Attached File" den Pfad zu deiner Logdatei angeben, du du im ExceptionNotify-Handler schreibst.

Wenn nun eine Exception auftritt, wird der "OnExceptionNotify"-Handler aufgerufen, darin schreibst du deine Log-Datei. Wenn nun den Kunde den Report absendet, wird die Log-Datei wie unter den Send-Optionen angegeben mit in den Report gepackt, gezippt und mitversendet.

Sehr praktisch ist auch, das ganze gleich direkt in ein Bugtracking System senden zu lassen, z.B. sendet mein EurekaLog direkt ins Mantis.


Edit:
Der OnExceptionNotify-Handler ist auch insofern praktisch, da du dort mit "Handled := true" globale Exceptions auch selbst abfangen kannst, ohne den EurekaLog-Fehlerdialog anzuzeigen.
Fin

Geändert von ehX (17. Aug 2011 um 10:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: EurekaLog + TCSIdCriticalSection

  Alt 23. Aug 2011, 09:54
Das Problem liegt in der RTTI-Unit (XE).
HideBorlandLeaks hilft bei mir nicht weiter.

Kann noch jemand etwas beitragen? Offenbar existiert ein Problem in den RTTI. Muss sonst mal noch versuchen, das näher einzugrenzen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von ehX
ehX

Registriert seit: 11. Aug 2011
Ort: Augsburg
55 Beiträge
 
Delphi 2009 Professional
 
#9

AW: EurekaLog + TCSIdCriticalSection

  Alt 23. Aug 2011, 11:12
Ich habe leider kein Delphi XE, um es testen zu können.
Kann ich das mit 2009 oder 2006 auch irgendwie reproduzieren? Dann schau ich mir das gerne mal genauer an.
Fin
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: EurekaLog + TCSIdCriticalSection

  Alt 23. Aug 2011, 11:17
Wohl nicht. Die RTTI-Funktionen sind ja neu seit D2010.
Ich werde das heute Abend mal versuchen, einzugrenzen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:44 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