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

Reply via email to