This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

missing gmon.out


Hi,

I have a python application which I have been
attempting to profile with gmon.  After a few days
effort, I managed to get some reasonably useful
profiling information.  (in short I had to compile the
python interpreter with my extensions statically
linked, threading disabled and, of course, -pg).  I
have two questions.

First, the less serious problem.  The gprof
documentation claimed that if a program is compiled
with -pg, it will be linked to a version of libc6 (I
use glibc) which was also compiled with -pg so that
profiling information will be available for standard
library routines.  However, my profiling data did not
have any information for standard library routines,
which seem to consume about half of the run time of my
application.  I looked around and don't seem to have a
profiling version of the standard library installed. 
Is it still true that -pg should cause my program to
link against a special version of libc6?  I can't find
any reference to this at the glibc site.

Now the more serious problem.  After finally getting
reasonable profiling information, I decided to upgrade
my gcc and glibc versions; gcc 3.3 from 3.1 and glibc
3.2.3 from 3.1.  After doing this, my application has
stopped producing gmon.out.  It is nowhere to be
found; I have checked my entire file system.  A small
test program compiled with -pg does produce gmon.out. 
I posted this problem to a python mailing listed and
it was suggested that the problem may be due to the
way gmon allocates its table for the function data.  I
will just insert the reply from python help here:
========================================================
Yes, this is a known problem. gmon needs to statically
allocate an array of function descriptors, one per
function. To do so, it uses a heuristics, based on the
code size, and a ratio of functions per KByte code (or
some such).
Later, it might find that it has miscalculated its
memory requirement, and that it needs more slots than
it had estimated. In that case, it just gives up, and
stops profiling; it then will also fail to produce any
output.
=======================================================
So, is this a likely cause of my problem?  If so, is
there a fix or a workaround?  If not, do you have any
other suggestions??

I have also found on another mailing list a suggestion
that problems like this are a reason to use a more
"modern" profiling utility.  When I was getting good
info from gmon, it was quite useful, so I would be
happy to use it if I can get it working again.  When I
was looking around for profilers, I couldn't really
find anything else anyway.  Do you know of any other
profiling utilities I might look into?

Thanks much,
  Damon


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]