Delphi-PRAXiS
Seite 7 von 7   « Erste     567   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Start und Stop jeder Methode Tracen an nur einer stelle Implementieren (https://www.delphipraxis.net/166648-start-und-stop-jeder-methode-tracen-nur-einer-stelle-implementieren.html)

omata 29. Feb 2012 16:20

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

Zitat von gibb (Beitrag 1153682)
... nur immer her damit.

Ja, schön wäre es. Leider ist es hier nicht mehr erwünscht konkrete Beispiele zu veröffentlichen. Blöde Kommentare und/oder Beispiele in binärer Form oder Code, der so abgewandelt ist, dass er nichts mehr mit der eigentlichen Problemstellung zu tun hat, mehr gibt es hier leider nicht. Naja, mal sehen, ob sich jemand erbarmt. Ich habe da allerdings wenig Hoffnung. Und wenn es doch jemand tut, dann wird er nur blöd zusammen gestaucht.

Wie auch immer, Viel Glück... Das ist wirklich eine sehr interessante Problemstellung. Mir juckt es da ja in den Fingern... Aber veröffentlichen werde ich, wenn ich eine Lösung habe, diese ganz bestimmt nicht nochmal hier. (Vielleicht die EXE, das wäre doch super hilfreich).

schlecki 1. Mär 2012 08:42

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

Zitat von gibb (Beitrag 1153671)
Entweder such ich mir jetzt den Teil aus dem Code raus der das ganze parst oder aber ich kann direkt die exe so konfigurieren das ich es so verwenden kann...

1. wie passe ich den searchpath an für GP Profile? Wenn ich die .dpr öffne findet er nicht alle files weil nicht alle im searchpath von GPProfile sind.
2. Kann ich dem beibringen auch methoden aufzurufen und units zu includen die in meiner Applikation vorhanden sind? Wenn ja wie? resp. wo.

Also wir haben den simplen Weg gewählt, die EXE zu verwenden, wie sie ist und dann aber in unserem Programm nicht die originale gpprofile.pas einzubinden sondern eine von uns erstellt Unit. In der Unit werden nur 2 funktion erwartet:

Delphi-Quellcode:
procedure ProfilerEnterProc(procID: integer);
begin
  // create callstack and write to logfile
end;

procedure ProfilerExitProc(procID: integer);
begin
  // do nothing...
end;
und hier kannst du dann implementieren, was du möchtest :) Einziger wirklicher Nachteil ist, dass man ein Mapping ID => Name braucht. Den Callstack kannst du ja auch hier rausziehen - dann wäre ggf. auch die ID wieder egal ;)

gibb 1. Mär 2012 10:22

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

Zitat von omata (Beitrag 1153686)
Ja, schön wäre es. Leider ist es hier nicht mehr erwünscht konkrete Beispiele zu veröffentlichen. Blöde Kommentare und/oder Beispiele in binärer Form oder Code, der so abgewandelt ist, dass er nichts mehr mit der eigentlichen Problemstellung zu tun hat, mehr gibt es hier leider nicht. Naja, mal sehen, ob sich jemand erbarmt. Ich habe da allerdings wenig Hoffnung. Und wenn es doch jemand tut, dann wird er nur blöd zusammen gestaucht.

Wie auch immer, Viel Glück... Das ist wirklich eine sehr interessante Problemstellung. Mir juckt es da ja in den Fingern... Aber veröffentlichen werde ich, wenn ich eine Lösung habe, diese ganz bestimmt nicht nochmal hier. (Vielleicht die EXE, das wäre doch super hilfreich).

Muss ich das verstehen? Ich habe wohl was verpasst oder ist da was per PM gelaufen :?:

Dann bleibt aber meine frage, wie erweitere ich den Searchpath von GPprofile?

Gruss Gibb

gibb 2. Mär 2012 09:22

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

ich habe 2 Probleme... 1. Ich glaube ich hab noch nicht ganz verstanden wie der GPProfiler verwendet werden soll... die Idee ist das ich die 2 Units meinem Projekt Hinzufüge ist das Korrekt?

2.Wer weiss wo man die Jediklasse findet den methodenname aus dem Callstack ausliest? Problem ist folgendes: Ich find per google nur Starwars jedi ritter ;)

pHL 2. Mär 2012 09:37

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

http://www.delphi-jedi.org/

mfg

Codewalker 2. Mär 2012 09:39

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

Zitat von pHL (Beitrag 1154034)

Das hilft doch auch nicht, wenn man nicht genau weiß wonach man sucht.
Die Unit heißt JclDebug hat hat Methoden wie LineByLevel, ProcByLevel, FileByLevel. In der gleichen Methode ist Level = 0, wenn den direkten Aufrufer haben will 1, usw.

gibb 2. Mär 2012 12:29

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Ich hab mir unterdessen die komplette JCL installiert... wenn ich jedoch die Unit die du mir genannt hast use und die funktion aufrufe kriege ich einen Leerstring zurück... das lässt mich vermuten das ich irgendwas nicht richtig initialisiere... Result ist leer und beinhaltet daher auch keinen . ... was muss ich machen damit das aktiv wird?

himitsu 2. Mär 2012 12:57

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Wenn keine entsprechenden Debuginfos einkompiliert sind, dann kann die Funktion natürlich auch nichts finden.

gibb 2. Mär 2012 13:06

AW: Start und Stop jeder Methode Tracen an nur einer stelle Implementieren
 
Ja das hab ich unterdessen auch gemerkt :roll:

Aber das ganze funktioniert jetzt :thumb:

Was aber einwenig umständlich ist jetzt das zuerst mit GPProfiler die entsprechenden Units eingebunden werden müssen (Was nicht bei allen geht weil der Searchpath nicht alle units beinhaltet. In der IDE haben wir zusätzliche Pfade angegeben. Geht das nicht auch irgendwie beim GPProfiler?)

Dann muss bei der IDE die JCL installiert sein. Nur mit den Units gehts ja nicht ;)

Gruss Sev


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 Uhr.
Seite 7 von 7   « Erste     567   

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