Re: Question about instrumenting gcc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ian,

thank you very much your help. I redesigned __cyg_profile_enter and __cyg_profile_exit functions and I stay in the right memory interval. Furthermore I'm using now main_constructor and main_destructor instead of start_test and end_test. The settings of make also seem good, it creates the output of instrumentation that way what I expected. But the compilation failed after a point because it couldn't understand e.g. size_t in filenames.h and a lot of similar errors in files what I haven't touched. I thought, since I add file IO operations to the main.c or linking the instrument file to the project, I distracted somehow the dependency. At this point I tried to compile the gcc --disable-bootstrap but then the instrumentation flag hadn't any results. What is the problem now? :S

thanks,
Reni


On 06/05/2012 09:38 PM, Ian Lance Taylor wrote:
Renata Hodovan<hodovan@xxxxxxxxxxxxxxx>  writes:

I have to instrument gcc for some purposes. The goal is to be able to
track what GCC functions are called during a particularly
compile. Unfortunately I'm not really familiar with the architecture
of GCC so I need a little help. I tried the following steps:

1) Hacking gcc/Makefile.in and adding "-finstrument-functions" flag to
T_CFLAGS.
2) I have an already implemented and tested version of __start_test__
and __end_test__ functions. They are called from gcc/main.c, before
and after toplev_main() call. The containing file is linked to gcc
(the object is added to OBJS-common and the dependency is defined
later in gcc/Makefile.in)
3) Downloading prerequisites with contrib/download_prerequisites.
4) Executing the configuration from a clean build directory (on the
same level with the source dir): ./../gcc-4.6.2/configure
--prefix="/opt/gcc-4.6.2/" --enable-languages="c,c++"
5) Starting the build with "make all"

This way I ran out of memory, although I had 28G.
You should not have run out of memory at this step, not with 28G.
Adding -finstrument-functions should not have significantly changed the
memory usage of the build.

But I suppose you could have run out of memory if your
__cyg_profile_func_enter function uses a lot of memory.  If that is the
problem, then that is what you will have to fix.


Next I tried to remove the T_CFLAGS settings from the Makefile and
gave -finstrument-functions to the make command:
make CFLAGS+="-finstrument-functions" all
This won't build the compiler itself with -finstrument-functions.  For
that you need to use
     make BOOT_CFLAGS="-g -O2 -finstrument-functions"

Ian



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux