You said that simulator translate the instructions to micro-ops and keep a
hash of RIP to micro-op buffers. I could not really find, what is the
variable for those buffers to print, and the hash table?

I have not completed the script yet, but I will share it as soon as it is
done.

Thanks,
Aziz

On Sat, Oct 29, 2011 at 6:36 PM, avadh patel <[email protected]> wrote:

>
> On Sat, Oct 29, 2011 at 8:21 AM, Aziz <[email protected]> wrote:
>
>> Thank you for this information. It was really helpful and I finally have
>> been able to obtain the trace information.
>> I also want to get the micro operations trace. Since it is kept in the
>> buffers, is there an easy way to obtain it? Or, should I add into the code
>> to get it?
>>
>> These buffers are flushed on each context switch, so its better to add a
> code that will print them.
> Also it will be helpful to others if you can share the changes you made to
> script for getting the instruction trace.
>
> - Avadh
>
>
>> Thanks,
>> Aziz
>>
>>
>>
>> On Fri, Oct 28, 2011 at 1:31 AM, avadh patel <[email protected]> wrote:
>>
>>> The script depends on the file you give in via '-o' option.  That file
>>> contains the function names and start address.  And the trace rip contains
>>> the addresses that are committed.  The script simply maps the address to
>>> the function and print out the function name along side the trace address.
>>>  You'll need to modify the script to take input the output of 'objdump -d'
>>> (which has all instructions and addresses) and map the trace address in it
>>> to get the x86 instruction.
>>>
>>> - Avadh
>>>
>>>
>>> On Wed, Oct 26, 2011 at 7:45 AM, Aziz <[email protected]> wrote:
>>>
>>>> Thank you for your help and the script. Finally I've been able to get
>>>> the functions.
>>>>
>>>> Could you please give me some pointers on how to modify the script to
>>>> give me the instruction trace?
>>>>
>>>> Thanks,
>>>> Aziz
>>>>
>>>> On Wed, Oct 26, 2011 at 12:28 AM, Furat Afram <[email protected]>wrote:
>>>>
>>>>> try ./trace_to_func.py ptl_rip_trace output.txt -o ojectfile
>>>>>
>>>>> ojectfile  is the output of objdump -t
>>>>> I think this will give you the functions not the instructions but it
>>>>> shouldn't be hard to modify it to give you the instruction opcodes
>>>>> -Furat
>>>>>
>>>>>
>>>>> On Tue, Oct 25, 2011 at 1:54 PM, Aziz <[email protected]> wrote:
>>>>> > Thanks for the response. I've been trying hard to get to somewhere
>>>>> for
>>>>> > obtaining the instruction trace, but no luck.
>>>>> >
>>>>> >>>
>>>>> >>> I need to obtain instruction trace for the simulation run. I
>>>>> checked the
>>>>> >>> email archive, but defining TRACE_RIP only gives me hex coded
>>>>> instructions,
>>>>> >>> where I need the instruction, registers, and memory addresses as
>>>>> in "add
>>>>> >>> eax, 0xf4". Is there any way to obtain this?
>>>>> >>
>>>>> >> Its little tricky because the simulator translate the instructions
>>>>> to
>>>>> >> micro-ops and keep a hash of RIP to micro-op buffers. So once
>>>>> instruction is
>>>>> >> decoded into micro-ops, we don't keep track of original
>>>>> instruction.  In
>>>>> >> order to create a trace file, you'll need to add a new hash-table
>>>>> that keeps
>>>>> >> track of RIP address to its original instruction.  Then you can use
>>>>> that in
>>>>> >> pipeline to dump the trace along with register values and memory
>>>>> addresses.
>>>>> >
>>>>> > I tried to get into the code. I found that qemu works on the
>>>>> instructions in
>>>>> > disas_insn() function (at qemu/target-i386/translate.c) , but marss
>>>>> transfer
>>>>> > the control to ptlsim using gen_helper_switch_to_sim(). I did not
>>>>> understand
>>>>> > though, what gen_jmp_im(pc_start - s->cs_base) does (line 4080
>>>>> > in qemu/target-i386/translate.c).
>>>>> > Then I though, why use ptlsim, I can just get the instructions from
>>>>> qemu.
>>>>> > When I searched for it on the web, I found this document
>>>>> >
>>>>> http://www.iamroot.org/xe/?module=file&act=procFileDownload&file_srl=37296&sid=1cb6b46c0111f9909279b58df123efa6
>>>>> > which explains how to trace instructions using qemu. I tried the
>>>>> method they
>>>>> > gave within the "Trace instructions in full system emulation"
>>>>> section, but
>>>>> > somehow I could not make it work.
>>>>> > Then I tried using gdb debugger to singlestep through the
>>>>> instructions (as
>>>>> > explained in http://thread.gmane.org/gmane.comp.emulators.qemu/16604),
>>>>> but
>>>>> > neither gdb nor singlestep option worked for me with marss. Also
>>>>> when I try
>>>>> > "printf" in qemu files (e.g. translate.c function disas_insn), it
>>>>> does not
>>>>> > print anything.
>>>>> > I would appreciate if you can point me to the correct functions to
>>>>> change,
>>>>> > and where-what to print to get the trace file?
>>>>> > I also need to get the trace of the micro-ops in the same format I
>>>>> explained
>>>>> > (micro-op and register). Is there any automatic way to get that? If
>>>>> not,
>>>>> > what to do to acquire that kind of trace file?
>>>>> >>>
>>>>> >>> Also I could not make the trace_to_func.py file which Avadh gave.
>>>>> It says
>>>>> >>> its usage as "trace_to_func.py [options] trace_file outputfile". I
>>>>> >>> use ptl_rip_trace as trace_file and leave the options empty, but
>>>>> it always
>>>>> >>> gives the same Usage message.
>>>>> >>
>>>>> >> Did you specify the 'outputfile' ?
>>>>> >
>>>>> > Yes, I specified a filename for output. Still the following output
>>>>> comes up:
>>>>> >
>>>>> > $      ./trace_to_func.py ptl_rip_trace output.txt
>>>>> > Usage: trace_to_func.py [options] trace_file outputfile
>>>>> >
>>>>> > trace_to_func.py -h for help
>>>>> >
>>>>> > Thanks a lot for your help and for the great effort you put into
>>>>> marss.
>>>>> > Best,
>>>>> > Aziz
>>>>> > _______________________________________________
>>>>> > http://www.marss86.org
>>>>> > Marss86-Devel mailing list
>>>>> > [email protected]
>>>>> > https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
>>>>> >
>>>>> >
>>>>>
>>>>
>>>>
>>>
>>
>
_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to