This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gdb/671: Changing GDB/MI spec say the should be a termination


The following reply was made to PR gdb/671; it has been noted by GNATS.

From: Daniel Jacobowitz <drow@mvista.com>
To: Alain Magloire <alain@qnx.com>
Cc: gdb-gnats@sources.redhat.com
Subject: Re: gdb/671: Changing GDB/MI spec say the should be a termination
Date: Mon, 26 Aug 2002 15:45:50 -0400

 On Mon, Aug 26, 2002 at 07:38:00PM -0000, Alain Magloire wrote:
 >  > > 1:int main() {
 >  > > 2:      int x;
 >  > > 3:      pthread_create(NULL, NULL, routine, NULL);
 >  > > 4:      printf("Hello world\n");
 >  > > 5:      sleep(200000); // Or a very time consuming function called.
 >  > > 6:      printf("After the long wait\n");
 >  > > 7:      return 0;
 >  > > 8:}
 >  > > 
 >  > > gdb/mi will issue things like:
 >  > > (gdb)
 >  > > -break-insert file.c:6
 >  > > ^done,bkpt={...}
 >  > 
 >  > Is there a ``run/continue'' missing in here somewhere?
 >  
 >  Yes.
 >  
 >  > 
 >  > > ~"[New Thread 1024 (LWP 30497)]\n"
 >  > > ~"[Switching to Thread 1024 (LWP 30497)]\n"
 >  > > .... wait for the sleep ....
 >  > > *stopped,reason=...
 >  > > (gdb)
 >  > > 
 >  > > You do not have the "(gdb)" comming right away.
 >  > > 
 >  > >         OUTPUT ==> (OUT-OF-BAND-RECORD)* [RESULT-RECORD] "(gdb)"nl
 >  > > 
 >  > > I read the definition like you can accumulate outputs and deal with them only
 >  > > when encounter "(gdb)"  which is true unless you want to wait for the sleep() to
 >  > > finish.  In practice we can consider Out-of-band completely async and should be
 >  > > process right away.  It was not clear at first sight, IMHO.
 >  > 
 >  > Is this an async target (target remote-async)?  No current native target 
 >  > is async.  This makes correctly implemeting out-of-band messages very 
 >  > difficult.
 >  
 >  This goes for any streams(log/target/console).
 >  
 >  Changing the syntax to something like:
 >  
 >      OUTPUT ==> (OUT-OF-BAND-RECORD)* | [RESULT-RECORD] "(gdb)"nl
 >                                     ^^^^
 >  
 >  Is probably more accurate.  GDB(console-stream) will send oob's like
 >  creating new thread etc ... at any time.
 >  
 >  But you say "no current native" is asyn, which seems to say that remote
 >  is.  On GNU/Linux gdb-5.2.1  using gdbserver target streams are not asyn
 >  i.e properly MI wrap either.
 
 No, "target remote-async" is.  Gdbserver does not implement that (yet,
 or until it seems like a good idea).
 
 -- 
 Daniel Jacobowitz
 MontaVista Software                         Debian GNU/Linux Developer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]