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]

gdb/671: Changing GDB/MI spec say the should be a termination "(gdb)\n" string


>Number:         671
>Category:       gdb
>Synopsis:       Changing GDB/MI spec say the should be a termination "(gdb)\n" string
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Aug 26 11:38:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     alain@qnx.com
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
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={...}
~"[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.

>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


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