Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: George Anzinger <george@mvista.com>
To: Andrew Cagney <cagney@gnu.org>
Cc: Daniel Jacobowitz <drow@mvista.com>,
	Eli Zaretskii <eliz@elta.co.il>,
	gdb@sources.redhat.com
Subject: Re: Making "info thread" sane
Date: Wed, 03 Mar 2004 22:04:00 -0000	[thread overview]
Message-ID: <40465651.900@mvista.com> (raw)
In-Reply-To: <404629E3.5020906@gnu.org>

Andrew Cagney wrote:
> 
>>> The interesting thing about George's situation is that there's a lot of
>>> threads (basically, all but one of them) that we know in advance will
>>> be stuck in context switching code.  One of the nice things about info
>>> threads is that it shows you the current frame for all your threads;
>>> but in this case, that's not really very interesting information.
>>>
>>> If we could find out where those threads were _before_ they switched
>>> out, now, that would make for an interesting overview.
>>
>>
>>
>> Also, I am not apposed to a macro solution.  But, as far as I know the 
>> macros are a bit weak.  For example, the info thread command lists the 
>> thread number, pid, and an info field (which in my case is the task 
>> name from the kernel task struct).  So how would a macro keep this 
>> info intact and display it along with the "up" result on the same 
>> line?  In my thoughts on this I have considered a maintaince request 
>> to the host which would return the pid and the info field, ....
> 
> 
>> I also wonder how to determine, when stepping through the threads, 
>> that that was the last one.  As far as I know the top thread number is 
>> not available as a $var (but that would be nice for other macros as 
>> well). 
> 
> 
> Sorry, I'm lost here.  Can you perhaphs sketch out how you'd expect GDB, 
> the user, and the target to interact?

First, the objective is to get something like what "info thread" does but with a 
frame that is outside of the switch code (which may mean  several frames up the 
stack).  I was considering a macro that would do a silent info thread followed 
by a loop on each discovered thread.  In your message yesterday you suggested 
something like:

thread apply all try... end

Well, I don't find "try" but the apply all seems to accept a macro as a command 
so I think this will do the right thing.  And up-silent does a silent up.

So, this would be my macro set:

define do_threads
   thread apply all do_th_lines
end

define do_th_lines
   while ($pc > $low_sched) && ($pc < $high_sched)
     up-silent
   end
   do-silent
   up
end

What is missing are: 1) I would like to not have the newline after the
"Thread 1 (Thread 1):" (a minor point, but with 100 threads it adds up) and 2) I 
would like to have the result of the "ThreadExtraInfo" on the same line (as the 
info thread command does).

Nice, would be the ability to print the final up result without doing the down 
first.  In fact this is really needed if it turns out that we are at the first 
frame which would be the case for the current thread.  Is that a command I missed?

I suspect that 2) can be handled by "info remote-process" with changes to the 
stub AND I would like this to NOT put in a linefeed.

It would appear that this has unwound into a couple of rather simple things:
a) No new line capability on the "thread apply all"
b) No new line on "info remote-process"
c) Ability to do the up/down report without moving to a new frame.




-- 
George Anzinger   george@mvista.com
High-res-timers:  http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml


  reply	other threads:[~2004-03-03 22:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20040227212301.GC1052@smtp.west.cox.net>
     [not found] ` <20040227235059.GG425@elf.ucw.cz>
     [not found]   ` <403FEA02.6040506@mvista.com>
     [not found]     ` <200403011454.35346.amitkale@emsyssoft.com>
     [not found]       ` <4044FEDE.5000105@mvista.com>
     [not found]         ` <20040302214535.GA24405@nevyn.them.org>
     [not found]           ` <40450749.7020304@mvista.com>
     [not found]             ` <20040302221718.GA26931@nevyn.them.org>
2004-03-02 23:15               ` George Anzinger
2004-03-02 23:25                 ` Andrew Cagney
2004-03-03  0:14                   ` George Anzinger
2004-03-03  6:01                     ` Eli Zaretskii
2004-03-03 14:28                       ` Daniel Jacobowitz
2004-03-03 15:08                         ` Andrew Cagney
2004-03-03 18:40                         ` George Anzinger
2004-03-03 18:54                           ` Andrew Cagney
2004-03-03 22:04                             ` George Anzinger [this message]
2004-03-09  1:25                               ` Andrew Cagney
2004-03-12  0:24                                 ` George Anzinger
2004-03-12 21:33                                   ` Andrew Cagney
2004-03-22  9:40                                     ` George Anzinger
2004-04-21  1:30                                     ` George Anzinger
2004-03-08 19:21 Jim Houston

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=40465651.900@mvista.com \
    --to=george@mvista.com \
    --cc=cagney@gnu.org \
    --cc=drow@mvista.com \
    --cc=eliz@elta.co.il \
    --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