|
From: Juan C. M. S. <jua...@gm...> - 2010-07-21 21:19:30
|
Hello every one, (I am expect that this is the correct list) I am interested on doing program profiling. Lackey was my starting point, but I see some limitation that I want to overcome. I need guidance!!! First, Lackey counts loads, stores, and alu ops, differentiated by IR types; I wonder how I can get more details about i.e. ALU operations (for example: add, mult, div, etc.). If I am working with the Valgrind's IR, the results are equivalent to the original source (binary code)? Second, the memory map (stack - heap - data - code). In Lackey, I can trace all the memory references. I know that the address is a virtual address; however, I wonder if there is a memory map. I found some variables (initial_IP, intial_TOC, brk_base, initial_SP), but how I can access those values in Lackey? Also, can I access CS, DS, SS registers values? Third, system call arguments. I also want to profile system calls. I want to collect information about the arguments (syscall-ID, and parameters). In Valgrind's IR represtation, are the system all arguments passed using the register files or using the stack? If the arguments are passed using the stack, each argument has a memory location, right?; however, the number of arguments depend on the system call. Where I can find more details about system call, and how Valgrind handles them? Finally, about the IRStmt_Exit, why the destination (dst) is a constant? In the transformation, Valgrind estimates the destination address? I will appreciate if someone can point me out what documentation read, what function, or tool I can check. Thanks in advance, -- Juan Carlos |