This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Question about modifying gcc
- From: <dreese at vandals dot uidaho dot edu>
- To: <gcc at gcc dot gnu dot org>
- Date: Thu, 5 Jun 2008 12:55:17 -0700
- Subject: Question about modifying gcc
Could you please direct me to someone who would be willing and able to answer a few questions about some of the internal workings of the gcc compiler.
I am attempting to modify the compiler to instrument function calls and returns. The end result that i am trying to achieve is to send the address of every called function to a memory mapped file prior to the call and after the call send an immediate value to that same file. The target architecture is x86.
Here is an example in pseudo assembly of what i want to accomplish.
regular modified
instruction instruction
instruction instruction
mov $function-name, (eax)
call function-name call function-name
move $0x1000, (eax)
instruction instruction
instruction instruction
where eax is the address of the memory mapped file.
The purpose of this is to collect information about calls and returns in order to build call graphs and operating tendencies of software systems.
So far i have had little success.
I have been trying to change the machine description as well as the target description macros and function in order to get the desired functionality. I have been able to insert instruction into the compiled code, via output_asm_insn(), but not in the correct place.
Is there someone who would be able to help me with my problem.
Thank you
Dale Reese