[lldb-dev] Interpretation of GDB-RSP step commands

Matthew Gardiner mg11 at csr.com
Tue Aug 19 22:08:54 PDT 2014


Thanks Aidan,

Yes, that's what myself and my colleague imagined: i.e. s is a regular 
"execute next instruction then stop" step, and i somehow advances the 
clock, possibly stepping within a single multi-word instruction. The 
reason why I was puzzled, and hence why I reached out, was because I 
couldn't see any regular (gdb) command-line that would actually make use 
of this (that is the i packet), given our interpretation.

Anyway,
thanks again
Matt


Aidan Dodds wrote:
> Hi Matthew,
>
> This link seems to give some details:
> http://davis.lbl.gov/Manuals/GDB/gdb_31.html
>
> cycle step *(draft)* 	|i|addr|,|nnn 	Step the remote target by a 
> single clock cycle. If |,|nnn is present, cycle step nnn cycles. If 
> addr is present, cycle step starting at that address.
>
>
> Where as:
>
> step 	|s|addr 	addr is address to resume. If addr is omitted, resume 
> at same address.
>
>
> I believe that step should execute one whole machine instruction or 
> one instruction packet depending on the architecture.  The S command 
> should step into call instructions, not over.  Stepping over anything 
> is a task for the debugger, and is managed by coordinating 
> breakpoints, stepping and continuing.
>
> I cant imagine the 'i' command is commonly supported however since I 
> presume it would require very complex and tight coupling between the 
> processor running the stub and the processor being debugged as the 
> clock is not typical accessible.  For regular source level debugging 
> this level of control is not typical required.
>
> Thanks,
> Aidan
>
> On 19/08/2014 13:59, Matthew Gardiner wrote:
>> Sorry, I should have been more direct in this post...
>>
>> Does anyone actually know the difference in the GDB-RSP i and s 
>> commands?
>>
>> I'd welcome your insight.
>>
>> thanks
>> Matt
>>
>>
>> Matthew Gardiner wrote:
>>> Hi Folks,
>>>
>>> I'm poring over the gdb pdf trying to understand the difference 
>>> between the s and i commands.
>>>
>>> After chatting with a colleague we came up with 2 ideas:
>>>
>>> 1. i means a single instruction step, and s is an instruction step 
>>> but step over CALL instructions.
>>>
>>> OR
>>>
>>> 2. i means advance the clock once, i.e. by a single word in a 
>>> multi-word instruction. And s means a single instruction step.
>>>
>>> All comments welcome!
>>>
>>> thanks
>>> Matt
>>>
>>>
>>>
>>> Member of the CSR plc group of companies. CSR plc registered in 
>>> England and Wales, registered number 4187346, registered office 
>>> Churchill House, Cambridge Business Park, Cowley Road, Cambridge, 
>>> CB4 0WZ, United Kingdom
>>> More information can be found at www.csr.com. Keep up to date with 
>>> CSR on our technical blog, www.csr.com/blog, CSR people blog, 
>>> www.csr.com/people, YouTube, www.youtube.com/user/CSRplc, Facebook, 
>>> www.facebook.com/pages/CSR/191038434253534, or follow us on Twitter 
>>> at www.twitter.com/CSR_plc.
>>> New for 2014, you can now access the wide range of products powered 
>>> by aptX at www.aptx.com.
>>> _______________________________________________
>>> lldb-dev mailing list
>>> lldb-dev at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>
>>>
>>> To report this email as spam click 
>>> https://www.mailcontrol.com/sr/SLxusfELbczGX2PQPOmvUjg7ce8j6mWJ4GmDxhB89llOaJtRI!liNxCHjGJhJAM3g+rZVLhWkBsJwVIOzJj0SQ== 
>>> .
>>
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>
>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev




More information about the lldb-dev mailing list