Re: Map of functions
Thank you very much. Great!!! Giovanni
Re: Map of functions
On Friday, 14 December 2018 at 17:45:26 UTC, rjframe wrote: On Fri, 14 Dec 2018 16:33:44 +, Giovanni Di Maria wrote: I need the flow of calls. Thank you Giovanni gprof will do this on Linux/BSD if gdc supports the -pg flag (I don't know whether it would, but assume so) and your application is working. From code, you'd need to call a trace function on function entry. Mine lets you also specify a message (parameter values, etc.): --- void trace(T...)(T args, string func = __FUNCTION__) { import std.stdio : writeln; if (args.length > 0) { debug writeln("*trace: ", func, "- ", args); } else { debug writeln("*trace: ", func); } } void main(int a, string b) { trace(); trace(a, ", ", b); } --- You can also generate a call graph using callgrind. That however will slow down your program. There are some python script that converts the output of callgrind to a dot file that can be converted to svg. https://stackoverflow.com/questions/33769323/make-callgrind-show-all-function-calls-in-the-kcachegrind-callgraph
Re: Map of functions
Thank you very much, Fantastic!!! Giovanni
Re: Map of functions
On Fri, 14 Dec 2018 16:33:44 +, Giovanni Di Maria wrote: > > I need the flow of calls. > Thank you Giovanni gprof will do this on Linux/BSD if gdc supports the -pg flag (I don't know whether it would, but assume so) and your application is working. >From code, you'd need to call a trace function on function entry. Mine lets you also specify a message (parameter values, etc.): --- void trace(T...)(T args, string func = __FUNCTION__) { import std.stdio : writeln; if (args.length > 0) { debug writeln("*trace: ", func, "- ", args); } else { debug writeln("*trace: ", func); } } void main(int a, string b) { trace(); trace(a, ", ", b); } ---
Re: Map of functions
Do you really have a nested function print() inside a nested function calculate() inside main()? That is, Hi this is only an example of names of funcions but the structure is this: void main() { // maybe some calls to calculate() } void calculate() { // maybe some calls to print() } void print() { } I need the flow of calls. Thank you Giovanni
Re: Map of functions
On Friday, 14 December 2018 at 15:38:49 UTC, Giovanni Di Maria wrote: Hi Is there an utility to print the functions in a source file, for example: - main() --- calculate() - print() --- simulate() - print() . Thank you very much Giovanni Di Maria Do you really have a nested function print() inside a nested function calculate() inside main()? That is, void main() { void calculate() { void print() { } // maybe some calls to print() } // maybe some calls to calculate() } Or are you talking about the sequence in which function are *called*, and from where? Please clarify. Ivan Kazmenko.