Hi Yuan,

To be honest, I'm unfamiliar with those functions. I would consult the
source code for more information. Additionally, in gdb, you can just call
any function :).

Cheers,
Jason

On Tue, Jul 7, 2020 at 4:05 PM Shougang Yuan <syu...@ncsu.edu> wrote:

> Hi, Prof.Jason,
>
> Thanks for your detailed reply. I found that in the gem5 website about gdb
> debugging. It mentioned that there are some dump functions that can be
> called from the debugger and the website list some of them. Is there a way
> to know more details about these functions that can dump out the
> instruction queue and the ROB.
>
> Best regards.
> Yuan
>
> On Tue, Jul 7, 2020 at 5:35 PM Jason Lowe-Power <ja...@lowepower.com>
> wrote:
>
>> Hi Yuan,
>>
>> A couple of suggestions:
>> 1. You can use "--debug-file" to output to a file. Or, you can even use a
>> named pipe with grep to filter out only the instructions you care about.
>> You can also use "--debug-start" to delay debug printing until close to
>> where the problem occurs.
>> 2. You can use GDB to try to debug things. You can use "--debug-break" to
>> have a breakpoint happen at a precise tick. In GDB, you can print out
>> things like the register file values. You should be able to use the thread
>> context and/or the execution context to get the values of registers in GDB.
>> These are the interfaces from the CPU models to the outside world and the
>> ISA implementation, respectively. However, if you're using an out-of-order
>> model, it's not always obvious or easy to figure out what the architectural
>> state of some register is.
>>
>> Cheers,
>> Jason
>>
>> On Tue, Jul 7, 2020 at 2:23 PM Shougang Yuan <syu...@ncsu.edu> wrote:
>>
>>> Hi, Prof.Jason,
>>>
>>> Thanks for your reply. But actually I want to dump out the register
>>> value for some specific instructions because I suspect that the instruction
>>> execution may have some issues in my model. I tried to use Exec and
>>> ExecAll, but the trace is so large and a lot of these traces are not needed
>>> for me. I want to dump out the register values of the instructions I am
>>> interested in. i.e, if I have an add instruction, how can I dump out the
>>> source register value and dst register value of this instruction when it is
>>> executed or when it is in the commit stage. I tried to check the static or
>>> dynamic instruction classes, but seems that these values are not
>>> carried/stored with each instruction? Am I correct? Could you please give
>>> more hints?
>>>
>>> Best regards.
>>> Yuan
>>>
>>> On Thu, Jul 2, 2020 at 11:07 AM Jason Lowe-Power <ja...@lowepower.com>
>>> wrote:
>>>
>>>> Hi Yuan,
>>>>
>>>> You might find the Exec and ExecAll debug flags useful.
>>>>
>>>> Cheers,
>>>> Jason
>>>>
>>>> On Thu, Jul 2, 2020 at 7:48 AM Shougang Yuan via gem5-users <
>>>> gem5-users@gem5.org> wrote:
>>>>
>>>>> Hi, All,
>>>>>
>>>>> I am trying to modify the gem5 code and suffer some memory corruption
>>>>> bugs. I want to look at more details of each instruction. So is there a 
>>>>> way
>>>>> to dump out the register value of each instruction.
>>>>>
>>>>> Best regards.
>>>>> Yuan
>>>>> _______________________________________________
>>>>> gem5-users mailing list -- gem5-users@gem5.org
>>>>> To unsubscribe send an email to gem5-users-le...@gem5.org
>>>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>>>>
>>>>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to