This is the mail archive of the gcc@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]

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


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