Thanks, Steve. I know the pseudo-instruction stuff, but I do want to
generate checkpoint at certain PC.

On Thu, Aug 6, 2015 at 3:38 AM, Steve Reinhardt <[email protected]> wrote:

> If you're just trying to generate a checkpoint at a particular point in a
> program, you can also insert a pseudo-instruction in the program to cause a
> checkpoint to be generated without having to figure out the PC value.
>
> Steve
>
>
> On Wed, Aug 5, 2015 at 11:34 AM Lingxiao Jia <[email protected]>
> wrote:
>
>> Thanks, Patrick. I think it at least gives me a way to get access to the
>> pc.
>> Of course it would be ideal if there is any way that can directly access
>> the pc without getting the address of the thread first.
>>
>> On Wed, Aug 5, 2015 at 12:42 PM, Patrick <[email protected]> wrote:
>>
>>> Lingxiao,
>>> ​​
>>> In lieu of a response from someone else with more gem5 expertise, I
>>> thought this might help.
>>>
>>> (I assume you've seen this page: link
>>> <http://www.m5sim.org/Debugger_Based_Debugging>.)
>>>
>>> I put a breakpoint in src/cpu/simple/base.cc in the BaseSimpleCPU
>>> constructor. After it allocates a "SimpleThread" for its "thread" member, I
>>> can get the address of "thread." Then, at another point in the program, I
>>> can use that address to examine the pc member of "thread" like this
>>> (assuming the address of "thread" is 0x385e9c0):
>>>
>>> (gdb) call ((SimpleThread*)0x385e9c0)->pcState()
>>> $6 = {<GenericISA::UPCState<unsigned long>> =
>>> {<GenericISA::SimplePCState<unsigned long>> = {<GenericISA::PCStateBase> =
>>> {_pc = 4194710, _npc = 4194718}, <No data fields>}, _upc = 0, _nupc = 1},
>>> _size = 0 '\000'}
>>>
>>> ​A caveat is that gdb won't let me print out the address of "thread".
>>> When I try to print it in gdb, I get this error:
>>>
>>> (gdb)​ p thread​
>>>
>>> ​A syntax error in expression, near `'.
>>>
>>>
>>> ​My guess is that it's because "thread" is a keyword in gdb. In the
>>> code, I stored the value of "thread" in a variable with a different name,
>>> and it let me print the other variable.
>>>
>>> ​I don't know if this answers your question. If it does, I would guess
>>> there's probably a better way than this. Maybe someone else can give input.
>>>
>>> Hope this helps,
>>> Patrick​
>>>
>>> On Tue, Aug 4, 2015 at 10:31 AM, Lingxiao Jia <[email protected]>
>>> wrote:
>>>
>>>> Hello all,
>>>>
>>>> I am new to gem5. I want to use gdb to inspect what is going on inside
>>>> the simulator in SE mode.
>>>> Specifically, I want to stop at certain PC and make a checkpoint at
>>>> that point, but I don't find an easy way to do that. The existing way to
>>>> take checkpoints can only be taken at certain tick.
>>>> I reviewed the source code and generally located where the PC is stored
>>>> (in the ThreadState structure of the thread of the corresponding CPU).
>>>> But since gem5 use swig to bridge python and C++, I am really confused
>>>> if it is possible to access the PC globally in gdb?
>>>>
>>>> Thanks.
>>>>
>>>> --
>>>>
>>>> Best regards,
>>>>
>>>> Lingxiao Jia
>>>>
>>>>
>>>> Electrical & Computer Engineering (ECE)
>>>>
>>>> The University of Texas at Austin (UT-Austin)
>>>>
>>>> _______________________________________________
>>>> gem5-users mailing list
>>>> [email protected]
>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>
>>>
>>>
>>> _______________________________________________
>>> gem5-users mailing list
>>> [email protected]
>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>
>>
>>
>> --
>>
>> Best regards,
>>
>> Lingxiao Jia
>>
>> 贾凌霄
>>
>>
>> Electrical & Computer Engineering (ECE)
>>
>> The University of Texas at Austin (UT-Austin)
>> _______________________________________________
>> gem5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>



-- 

Best regards,

Lingxiao Jia

贾凌霄


Electrical & Computer Engineering (ECE)

The University of Texas at Austin (UT-Austin)
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to