How use callgrind to profiling only a certain period of program execution?
callgrind, profiling, valgrind
Solution
You should look at callgrind documentation, and read about callgrind_control.
- Launch your app : `valgrind --tool=callgrind --instr-atstart=no your_server.x`
- See 1.
- start collect profile data: `callgrind_control -i on`
- end collect profile data: `callgrind_control -i off`
- Analyze data with kcachegrind or callgrind_annotate/cg_annotate
Problem
I want to use valgrind to do some profiling, since it does not need re-build the program. (the program I want to profile is already build with “-g") But valgrind(callgrind) is quite slow ... so here's what I to do: - start the server ( I want to profile that server) - kind of attach to that server - before I do some operation on server, start collect profile data - after the operation is done, end collecting profile data - analyze the profiling data. I can do this kind of thing using sun studio on Solaris. (using dbx ). I just want to know is it possible to do the same thing using valgrind(callgrind)? Thanks