Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* filtering of commands during async operation
@ 2003-11-05 21:11 Newman, Mark (N-Superior Technical Resource Inc)
  2003-11-05 21:52 ` Doug Evans
  0 siblings, 1 reply; 16+ messages in thread
From: Newman, Mark (N-Superior Technical Resource Inc) @ 2003-11-05 21:11 UTC (permalink / raw)
  To: gdb


In top.c there is an attempt to filter what commands can be issued during async operation.  That code is not filtering (at least under RH on an Intel box).  The code is

if (event_loop_p && target_can_async_p () && target_executing)
if (!strcmp (c->name, "help")
	    && !strcmp (c->name, "pwd")
	    && !strcmp (c->name, "show")
	    && !strcmp (c->name, "stop"))
error ("Cannot execute this command while the target is running.");


The code should be:

if (event_loop_p && target_can_async_p () && target_executing) {
   if (!(strcmp (c->name, "help") == 0)
	    && !(strcmp (c->name, "pwd") == 0)
	    && !(strcmp (c->name, "show") == 0)
	    && !(strcmp (c->name, "stop") == 0)) {
   error ("Cannot execute this command while the target is running.");
   }
}

Unless someone objects I am going to put in a bug report and a patch.

In addition I would like to set up a more flexible way of defining which commands are legal while target_executing == 1 and in async mode.

                                        Mark Newman


^ permalink raw reply	[flat|nested] 16+ messages in thread
* RE: filtering of commands during async operation
@ 2003-11-06 14:32 Newman, Mark (N-Superior Technical Resource Inc)
  2003-11-06 16:57 ` Elena Zannoni
  0 siblings, 1 reply; 16+ messages in thread
From: Newman, Mark (N-Superior Technical Resource Inc) @ 2003-11-06 14:32 UTC (permalink / raw)
  To: Elena Zannoni, Grant Edwards; +Cc: Doug Evans, gdb

Three things 

To answer your question about async native I am working on all aspects
of async - however at the current time I am concentrating on remote with
tracepoints.

Next a request - Could you add "tfind", "tdump", "tstart", and "tstop"
to the list of acceptable commands?  I know that if I am using
tracepoints to monitor what is going on in a system I don't want to wait
and hope that whatever event I am monitoring for occurs.  I want to be
able to look at the tracepoints while they are occurring.

Finally - would it be better to place a flag in command_list_element and
avoid all of the strcmp's altogether?

                                         Mark Newman

> -----Original Message-----
> From: Elena Zannoni [mailto:ezannoni@redhat.com]
> Sent: Wednesday, November 05, 2003 6:12 PM
> To: Grant Edwards
> Cc: Doug Evans; Newman, Mark (N-Superior Technical Resource Inc);
> gdb@sources.redhat.com
> Subject: Re: filtering of commands during async operation
> 
> 
> Grant Edwards writes:
>  > 
>  > > Good example of why it's useful to avoid using ! with strcmp.
>  > > 
>  > >  > The code should be:
>  > >  > 
>  > >  > if (event_loop_p && target_can_async_p () && 
> target_executing) {
>  > >  >    if (!(strcmp (c->name, "help") == 0)
>  > >  > 	    && !(strcmp (c->name, "pwd") == 0)
>  > >  > 	    && !(strcmp (c->name, "show") == 0)
>  > >  > 	    && !(strcmp (c->name, "stop") == 0)) {
>  > >  >    error ("Cannot execute this command while the 
> target is running.");
>  > >  >    }
>  > >  > }
>  > >  > 
>  > >  > Unless someone objects I am going to put in a bug 
> report and a patch.
>  > > 
>  > > Why not just strcmp () != 0
>  > 
>  > Why not just strcmp() ?
>  > 
>  >   if (strcmp() 
>  >       && strcmp() 
>  >       && strcmp())
>  > 
> 
> Whoops. I agree, this is screwed up.  I'll just make the fix now, no
> need to file a bug report.  I am curious, did somebody get async
> native to work? So far there is only the remote async target.  I do
> remember testing this, back 4 years ago, maybe the logic got turned
> around at some point.
> 
> I think strcmp != 0 is ok. It is the preferred form in gdb.  Is
> this in the ARI? mmmm... partially it is. It is not flagged in the
> counts though.
> 
> elena
> 
> 


^ permalink raw reply	[flat|nested] 16+ messages in thread
[parent not found: <1068129153.32379.ezmlm@sources.redhat.com>]
* RE: filtering of commands during async operation
@ 2003-11-07 16:00 Newman, Mark (N-Superior Technical Resource Inc)
  2003-11-07 16:14 ` Daniel Jacobowitz
  2003-11-07 17:03 ` Elena Zannoni
  0 siblings, 2 replies; 16+ messages in thread
From: Newman, Mark (N-Superior Technical Resource Inc) @ 2003-11-07 16:00 UTC (permalink / raw)
  To: Elena Zannoni; +Cc: gdb



> From: Elena Zannoni [mailto:ezannoni@redhat.com]
.....
> 
>  > Next a request - Could you add "tfind", "tdump", "tstart", 
> and "tstop"
>  > to the list of acceptable commands?  I know that if I am using
>  > tracepoints to monitor what is going on in a system I 
> don't want to wait
>  > and hope that whatever event I am monitoring for occurs.  
> I want to be
>  > able to look at the tracepoints while they are occurring.
>  > 
> 
> 
> It sounds like a sensible change, however I'd like to know a bit more
> about the direction you are headed. Surely such a change would be a
> candidate for a patch.
> 

I am not certain what you mean by where I am headed.  My near term
objective is to get tracepoints running in the background and to provide
some additions that I typically put in a debugger. 

I added some support for tracepoints in gdbserver.  I then tested that
in the foreground.  It seemed that everyone writing to the lists at the
time was doing that. That resulted in couple (3) of bug finds that were
fixed.

I provided a patch and a bug report (actually an enhancement - which I
cannot find now) that allows tracepoints to run while in async mode.  I
am now looking at running tracepoints in the background.  That resulted
in this thread.

I am headed at getting tracepoints to the point where I can start a
remote target running, establish tracepoints, and then go in and peek
and poke through those tracepoints without disturbing the remote process
(as Jim's and Michael's Heisenberg paper talked about).  I am trying to
go a step further than their paper by allowing one to inspect the
tracepoints while the remote is running, collecting, and hopefully not
being perturbed.  This is something I have done in the past with some
commercial debuggers and I am tired of doing and redoing it.

I have typically used this type of analysis on systems that incorporate
multiple computers - possibly multiple cpu's with multiple dsp's -
frequently these processors are headless.  Tracepoints or something like
them are used to help isolate a problem (feature) to a specific process
on a specific processor.  Then and if needed the more classic features
of a debugger are used to reduce the error. 

>  > Finally - would it be better to place a flag in 
> command_list_element and
>  > avoid all of the strcmp's altogether?
>  > 
> 
> The async interface was not really fully implemented, and the current
> subset of commands to be run while the inferior executes was just a
> proof of concept. 

I have been sorta following the thread between Andrew, Jim, and Elena.
I would very much like to get any changes that have been made to async.
I assume that other people would also.  If I can't then, as you
suggested Elena, I will simply have to duplicate the work that Apple
did.

It may very well be that I am not the only person to find the problem
but rather the only one to report it.  The effect of the problem was to
let all commands go through.

I have only a short history in this list and it is not clear to me.
Have the Apple changes been delivered?  Has the first of two sets of
changes only been delivered?  Is Jim going to make those changes that
Apple made available?  Are the Apple changes available in source with
Panther?


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2003-11-07 17:03 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-05 21:11 filtering of commands during async operation Newman, Mark (N-Superior Technical Resource Inc)
2003-11-05 21:52 ` Doug Evans
2003-11-05 22:00   ` Grant Edwards
2003-11-05 22:10     ` Paul Koning
2003-11-05 23:11     ` Elena Zannoni
2003-11-06 14:32 Newman, Mark (N-Superior Technical Resource Inc)
2003-11-06 16:57 ` Elena Zannoni
     [not found] <1068129153.32379.ezmlm@sources.redhat.com>
2003-11-06 17:38 ` Jim Ingham
2003-11-06 19:41   ` Elena Zannoni
2003-11-06 21:16     ` Jim Ingham
2003-11-06 22:10       ` Andrew Cagney
2003-11-06 22:29         ` Elena Zannoni
2003-11-06 22:26       ` Elena Zannoni
2003-11-07 16:00 Newman, Mark (N-Superior Technical Resource Inc)
2003-11-07 16:14 ` Daniel Jacobowitz
2003-11-07 17:03 ` Elena Zannoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox