Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Jim Ingham <jingham@apple.com>
To: gdb@sources.redhat.com
Subject: Re: MI thread commands
Date: Fri, 15 Oct 2004 18:50:00 -0000	[thread overview]
Message-ID: <C4B86426-3F12-4FD4-8536-F445BC197A34@apple.com> (raw)
In-Reply-To: <1097854821.16300.ezmlm@sources.redhat.com>

One thought here is that getting all this info for all threads is  
currently expensive in gdb.  You need to be careful about anything you  
have to do each time the debugger steps, since people really notice  
slowdowns in stepping performance.  Unless you are displaying all this  
info for every thread in the program, you might not want to fetch it.

Xcode just uses -thread-list-ids (which you might want to enhance to  
add the "extra" bit since that would be useful to display in a "thread  
list or popup" UI element.  We only get more info about a thread if we  
actually have to display it's stack.  For that reason, we have never  
felt the need to implement thread-list-all-threads...

Also, I am sure you know this, but remember also that the active thread  
is not necessarily the thread that you stopped at.  The use can change  
the thread (they can even do it in the console...) so gdb needs to  
issue and the UI needs to pick up thread changed notifications.

Jim

On Oct 15, 2004, at 8:40 AM, gdb-digest-help@sources.redhat.com wrote:

>
>
>>
>>> Hi
>>>
>>> I didn't get a reply on this one so I thought I try again.
>>>
>>>
>>>>> What was the intention behind -thread-info? It's not explained in  
>>>>> the
>>>>> manual and also not implemented (so much to "Read the source,  
>>>>> Luke").
>>>>> Should this bring the info that is available with "info threads"  
>>>>> but for only
>>>>> one thread? Is there another possibility to get e.g. the thread  
>>>>> name?
>>>>>
>>>>> I made my try with the -thread-list-all-threads command, but I'm  
>>>>> not
>>>>> sure about the output format as it's nowhere described (Hey Bob,  
>>>>> thanks
>>>>> for your rules :) Is this sensible? Or is it one level too much  
>>>>> (the
>>>>> "threads=" level)?
>>>>>
>>>>> ^done,threads=[thread={id="12",pid="945832",extra=" Name:  
>>>>> UserTaskName, State: 0
>>>>> 002, Priority:  
>>>>> 0007",frame={func="CTaskTemplateClass::Action",args=[{name="this"
>>>>> ,value="0xe6ea8"}],file="N:/Temp/ToThrow/psoism/applicat/src/ 
>>>>> CTaskTemplateClass.
>>>>> cpp",line="454"}},thread={id="11",pid="956152",extra=" Name:  
>>>>> IMP_MAS, State: 000
>>>>> 9, Priority:  
>>>>> 0000",frame={func="CINOSTask::MainLoop",args= 
>>>>> [{name="this",value="0
>>>>> xe96f8"}],file="N:/Temp/ToThrow/psoism/os/inos/Src/ 
>>>>> Inos.cpp",line="856"}}..(snipped)..]
>>>
>>>
>>> Another problem I have is the active thread. If the info thread  
>>> command is issued
>>> on the CLI gdb will indicate the selected thread with a '*' in front  
>>> of it. Obviously
>>> that's not possible with the mi. How can this information be  
>>> returned? Is there
>>> a way to add it to the -thread-list-all-threads, e.g. with a new  
>>> field "active" only
>>> present in the active thread? Or should it be omitted in this  
>>> command and put
>>> into a new/other mi command? e.g. the above mentioned -thread-info?
>>
>> Does a GUI, where all threads are displayed equal, have an "active"
>> thread?  I guess you're looking to identify the thread at the head of
>> the list of threads that had a reason to stop - breakpoint, signal,  
>> ...
>>
>> If MI clients think it's useful, it can be added.
>>
>
> When the inferior become suspended, in the response usually there is a  
> thread-id
> for example:
> *stopped,reason="breakpoint-hit",thread-id=".."
>
> So the GUI will know the active thread.
> I've seen, however times where the thread-id was not in for some  
> reason.
> In this case, for backward compatibility reason, we fallback to use  
> "info threads"
> I believe there was a PR on this on GNATS.  So far the latest gdbs  
> seem to come back
> with a thread-id that make this PR less of a priority.
>
>
>


       reply	other threads:[~2004-10-15 17:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1097854821.16300.ezmlm@sources.redhat.com>
2004-10-15 18:50 ` Jim Ingham [this message]
2004-10-18 21:05   ` Alain Magloire
2004-10-01 14:58 Fabian Cenedese
2004-10-14 18:53 ` Fabian Cenedese
2004-10-15  2:36   ` Andrew Cagney
2004-10-15 12:50     ` Alain Magloire

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=C4B86426-3F12-4FD4-8536-F445BC197A34@apple.com \
    --to=jingham@apple.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