Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Pawel Piech <pawel.piech@windriver.com>
To: gdb@sources.redhat.com
Subject: Re: MI non-stop mode spec
Date: Thu, 27 Mar 2008 19:39:00 -0000	[thread overview]
Message-ID: <47EBDFF7.8010206@windriver.com> (raw)
In-Reply-To: <fsffia$e8j$1@ger.gmane.org>

Vladimir Prus wrote:
> Pawel Piech wrote:
>
>   
>> Vladimir Prus wrote:
>>     
>>>> Thanks for agreeing :-)  Like I said, I have no idea of the complexity
>>>> of such a change.  However, it seems to me that you should be able to
>>>> implement a simple protcol-state-tracking logic for both CLI and MI
>>>> protocols, and simply simulate the --thread option for commands that
>>>> don't supply one.  This way you could have both the backward compatible
>>>> stateful protocol, and have the -thread option to override it on the
>>>> individual commands.
>>>>     
>>>>         
>>> This might be actually a reasonable thing. On one thing, not switching
>>> the current thread might be good for CLI. On the other hand, I still believe
>>> that --thread is ultimately better solution for MI. Then, it might be best to
>>> make GDB not to switch threads (benefiting CLI and stateful MI), and
>>> also accept --thread for the benefit of newer MI clients.
>>>
>>> Now there's the catch that --thread is already implemented and is rather
>>> straightforward, whereas I expect some corner cases in implementing thread
>>> that does not change. I think we'll first get the non-stop mode working
>>> with --thread, and then look into making current thread not change.
>>> (For avoidance of doubt, "then" means "immediately after" not "someday").
>>>   
>>>       
>> I think this would be an excellent compromise.  If there is any kind of
>> a layering between the protocol interpreter and the underlying
>> functions, it shouldn't be too much of a stretch to add the state
>> tracking in the protocol interpreter layer.  
>>     
>
> This is one implementation approach -- add current thread in MI, and switch
> GDB's global current thread to MI's current thread when executing any command.
> This is not very hard, but won't help CLI. Another approach is to do the
> same trick for CLI. Yet another approach is to make sure GDB never changes 
> its global thread except internally, when it's guaranteed not to talk to user.
> We'll see which approach is best.
>
>   
Great!
>> BTW, for the clients that 
>> support both a UI and a command console it would be even even better if
>> CLI and MI maintained their own current thread and stack frame.  This
>> would prevent the two interfaces from interfering with each other.
>>     
>
> Oh, that's interesting idea. But, would it not be confusing if frontend
> shows certain thread and frame as current in UI, whereas commands in GDB
> console operate on some other thread?
>
>   
It certainly could be confusing.  Although in Eclipse DSF-GDB the UI 
selection is already decoupled from the MI protocol state.  One elegant 
solution to this would be to allow the user to electively link the 
console view to the UI selection, where the linking implementation would 
explicitly write "thread" and "frame" commands into the console.  But 
such a feature would require additional work on the client side.

Cheers,
Pawel
> - Volody
>   


  reply	other threads:[~2008-03-27 17:57 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-19  2:49 Vladimir Prus
2008-03-19  6:26 ` Nick Roberts
2008-03-19  9:14   ` Vladimir Prus
2008-03-19 10:02     ` Nick Roberts
2008-03-19 11:10       ` Vladimir Prus
2008-03-19 12:30         ` Nick Roberts
2008-03-19 13:43           ` Vladimir Prus
2008-03-19 20:44       ` Michael Snyder
2008-03-19 11:20     ` Bob Rossi
2008-03-19 11:16 ` Bob Rossi
2008-03-19 12:01   ` Vladimir Prus
2008-03-19 13:50     ` Bob Rossi
2008-03-19 14:07       ` Vladimir Prus
2008-03-19 14:33         ` Bob Rossi
2008-03-19 16:09           ` Vladimir Prus
2008-03-20 18:22 ` Marc Khouzam
2008-03-20 20:02   ` Vladimir Prus
2008-03-21  9:11   ` Nick Roberts
2008-03-21  9:48     ` Vladimir Prus
2008-03-21 18:13       ` Nick Roberts
2008-03-22  0:33         ` Vladimir Prus
2008-03-23  4:41           ` Nick Roberts
2008-03-23  5:18             ` Vladimir Prus
2008-03-23  9:25               ` Nick Roberts
2008-03-24  5:44                 ` Vladimir Prus
2008-03-24  7:05                   ` Thread bound variable objects [was: Re: MI non-stop mode spec] Nick Roberts
2008-03-24  7:18                     ` Vladimir Prus
2008-03-24 11:04                       ` Nick Roberts
2008-03-24 14:38                         ` Vladimir Prus
2008-03-25  6:28                       ` Thread bound variable objects Nick Roberts
2008-03-25 11:34                         ` Daniel Jacobowitz
2008-03-21 11:52 ` MI non-stop mode spec Vladimir Prus
2008-03-24 23:14   ` Daniel Jacobowitz
2008-03-25 17:46     ` Vladimir Prus
2008-03-22 17:33 ` Pawel Piech
2008-03-24  4:03   ` Nick Roberts
2008-03-24 17:22     ` Pawel Piech
2008-03-24 20:23       ` Vladimir Prus
2008-03-25  2:14       ` Nick Roberts
2008-03-24 18:38   ` Vladimir Prus
2008-03-24 21:25     ` Pawel Piech
2008-03-24 21:46       ` Vladimir Prus
2008-03-24 22:28         ` Pawel Piech
2008-03-25 12:30           ` Vladimir Prus
2008-03-25 18:30             ` Pawel Piech
2008-03-27 14:13               ` Vladimir Prus
2008-03-27 19:39                 ` Pawel Piech [this message]
2008-03-25 21:28             ` Nick Roberts
2008-03-26 13:03               ` Pawel Piech
2008-03-25  1:00   ` Daniel Jacobowitz
2008-03-25 18:18     ` Pawel Piech
2008-03-30 21:36       ` Pawel Piech

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47EBDFF7.8010206@windriver.com \
    --to=pawel.piech@windriver.com \
    --cc=gdb@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox