From: Christian Weisgerber (naddy_at_unix-ag.uni-kl.de)
Date: 25. Jan 2000
Kann ich bei der GNU-Toolchain (gcc & Co.) automatisch einen
Aufrufgraphen aller Funktionen, am besten mit Argumenten, erzeugen
lassen?
Ich hätte gerne, am Beispiel der Funktion foo(), sowas wie:
foo(int a, char *b)
{
int c;
fprintf(stderr, "foo(a=%d, b=%s)\n", a, b); /* <-- !!! */
...
/* was auch immer foo() macht */
}
Nur für alle Funktionen und ohne, dass ich sowas explizit überall
in den Source einstreuen muss. Muss natürlich nicht nach stderr
gehen, kann auch in eine Logdatei, etc. Ich hätte nur gerne am Ende
ein Log, aus dem ich den Aufrufgraph der Funktionen ersehen kann.
Was mir bisher eingefallen ist:
- Programm unter gdb ausführen und an geeigneter Stelle anhalten und
Stacktrace ausgeben. Das "an geeigneter Stelle anhalten" stellt sich
dabei aber als großes Problem dar. Singlestepping ist auch nicht das
Wahre.
- Profiling mit gprof. Damit kriege ich keinen richtigen Graphen sondern
nur mehr oder minder flache Zusammenfassungen und keine Argumente.
-- Christian "naddy" Weisgerber naddy_at_unix-ag.uni-kl.de
Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET