AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
Thema durchsuchen
Ansicht
Themen-Optionen

Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

Ein Thema von gibb · begonnen am 23. Feb 2012 · letzter Beitrag vom 2. Mär 2012
Antwort Antwort
Seite 3 von 7     123 45     Letzte »    
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#21

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 07:40
Hm, gibt es da nicht schon Software für? Profiler oder wie die sich nennt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#22

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 08:53
Darf man mal fragen wozu du das brauchst?
Damit ließe sich quantitativ erfassen, welche Programmteile wie oft aufgerufen werden und dabei allein und in Summe wie viel Ausführungszeit benötigen.
Das oder auch die Testabdeckung der Schnittstellen eines Moduls...
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#23

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 09:39
Hm, gibt es da nicht schon Software für? Profiler oder wie die sich nennt?
Hast du den Thread überhaupt gelesen?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#24

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 10:26
das mit dem Flag war keine Frage sondern eine Feststellung das krieg ich noch gerade so hin...

Die frage ist nur wie schiebe ich das stückchien code allen Methoden unter die im Programm sind und das nur bei bedarf. Ansonsten möchte man ja diesen Code nicht unbedingt in jeder funktion finden

daher müsste das irgendwie automatisch gehen. oder halt wie bereits gesagt eine stelle ganz weit hinten versteckt.


Gruss Gibb
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#25

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 10:51
daher müsste das irgendwie automatisch gehen. oder halt wie bereits gesagt eine stelle ganz weit hinten versteckt.
Mehrere Die Wege hatte ich doch schonmal aufgezählt?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#26

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 11:04
ja aber ich habe die hoffnung nicht aufgegeben das es einen einfacheren weg gibt

Zitat:
Entweger man sucht sich nachträglich (nach dem Kompilieren) aus den erweiterten Debuginfos die Methoden-Anfänge (erste Codezeile) und deren Ende (letzte Codezeile)
und patcht sich dann überall einen Funktionsaufruf (Logfunktion) rein, bzw. erstellt überall dort Haltepunkte, auf die ein eigener Debugger hört.

Oder man baut sich einen Precompiler, welcher vor dem compilieren die Quellcodes parst und überall diese Log-Funktionsufrufe reinmacht (nur für's Compilieren),
bzw. man läßt den Parser so drüberlaufen und läßt sich direkt in seine Quellcodes die Aufrufe reinbauen.
Oder man geht selber durch und macht die manuell rein.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#27

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 11:23
Ein einfacher Weg wäre, wenn es ein Event gäbe, welches schon eingebaut ist (zu Beginn und am ende jeder Prozedur), aber sowas gibt es in Delphi nicht.

Bei Scriptsprachen, wie JavaScript und auch teilweise bei gemanagten Sprachen (vielleicht .NET) sähe die Sache anders aus. Also vorwiegend dort, wo ein Programm den Code interpretiert und wo man sich in den Interpretierer reinhängen kann.

Du willst ja überall einen Funktionsaufruf reinhaben und der muß ja auch erstmal überall rein.
Wäre halt zu schön, wenn man ganz einfach im Delphi einen Precompiler registrieren könnte. (den vermisse ich ganz doll)

In neueren Delphis gäbe es die PreCompile- und AfterCompile-Events, wo man sowas gewisser Maßen unterbringen könnte. (auch wenn kein echter PreCompiler möglich wäre, welcher die QuellCodes unverändert läßt)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Feb 2012 um 11:26 Uhr)
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#28

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 11:31
daher müsste das irgendwie automatisch gehen. oder halt wie bereits gesagt eine stelle ganz weit hinten versteckt.
Mehrere Die Wege hatte ich doch schonmal aufgezählt?
Ich würde einmal vermuten, er möchte eine Lösung z.B. basierend auf TVirtualMethodInterceptor - er weiß es nur nicht.

Wie auch immer: Ohne Konfigurationsaufwand (sei es per Attribute, xml-File oder hardcodierte Funktionsaufrufe) wird es wohl nicht, zumindest aber nicht vernünftig gehen.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#29

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 11:59
daher müsste das irgendwie automatisch gehen. oder halt wie bereits gesagt eine stelle ganz weit hinten versteckt.
Mehrere Die Wege hatte ich doch schonmal aufgezählt?
Ich würde einmal vermuten, er möchte eine Lösung z.B. basierend auf TVirtualMethodInterceptor - er weiß es nur nicht.
Zum Profilen würd ich diesen Weg aber nicht gerade empfehlen, der ganze RTTI und Invoke Overhead ist ein Performance Albtraum (ich gehe jetzt mal davon aus, dass der TE hier performancekritische Stellen untersuchen möchte).

Ich konnte bisher nicht herauslesen, ob das Tracen Teil der Entwicklung ist, oder ob das auch irgendwie beim Kunden aktivierbar sein muss. Speziell für Debugging/Profiling Zwecke ist auch der Sampling Profiler sehr nützlich.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#30

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren

  Alt 24. Feb 2012, 12:20
Ich würde einmal vermuten, er möchte eine Lösung z.B. basierend auf TVirtualMethodInterceptor - er weiß es nur nicht.
Ich wage es, dies in Zweifel zu ziehen. An den TVirtualMethodInterceptor hatte ich zwar auch geacht, dieser ist jedoch Teil der neuen RTTI und damit nicht in Delphi 2006 verfügbar.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 7     123 45     Letzte »    


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 02:18 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