On Sun, Dec 02, 2001, Oleg Goldshmidt wrote about "Re: Problems when linking against
the profiled libc":
> "Nadav Har'El" <[EMAIL PROTECTED]> writes:
> > By the way, when profiling, you should also use "-g".
> Not true. You should use your normal compilation options. In
> particular, you might be interested in profiling optimized code
> without extra debugging information.
I stand by my original statement (which anyway was just a comment, in
addition to the solution of the original problem).
I explained why -g is needed for the last part of the gprof output, which
for each function tells you which file it comes from. This part is wrong
if you don't compile with -g (try it!), and this part is very useful when
you profile a program or library with many identically-named static functions
(e.g., openssl - one of the most obfuscated libraries I've seen).
We're talking about Linux, by the way, so we're talking about gcc, and in
gcc you can combine -g with -O if you want - the optimization is done
as usual regardless if you use "-g" or not. "-g" only adds a bit more
source file/line information to the object file, and doesn't change in any
way the code generation, running times, or anything except the size of the
executable (which is irrelevant in any non-trivial run).
So to summarize, if you're profiling with linux+gcc, I see no reason why
not to add a -g to the compilation line, leaving whatever -O option you
had there. Almost everything will work without this -g, though, so if
you feel nervous about it, leave it out...
> You need -g if you want to do line-by-line profiling (rather than
> function-by-function), because -g is what is tracking source code
> lines. Check gprof's info pages.
and source *files*. I never said this -g is of absolute importance - gprof
will work without it - but it's nice to have correct (rather than *wrong*)
source file information in the gprof output.
Nadav Har'El | Sunday, Dec 2 2001, 17 Kislev 5762
[EMAIL PROTECTED] |-----------------------------------------
Phone: +972-53-245868, ICQ 13349191 |This '|' is not a pipe.
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]