Question about instrumenting gcc
Ian Lance Taylor
iant@google.com
Tue Jun 5 19:38:00 GMT 2012
Renata Hodovan <hodovan@inf.u-szeged.hu> 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
More information about the Gcc-help
mailing list