From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6824 invoked by alias); 6 Nov 2009 14:28:10 -0000 Received: (qmail 6814 invoked by uid 22791); 6 Nov 2009 14:28:09 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 06 Nov 2009 14:28:05 +0000 Received: (qmail 7010 invoked from network); 6 Nov 2009 14:28:03 -0000 Received: from unknown (HELO wind.localnet) (vladimir@127.0.0.2) by mail.codesourcery.com with ESMTPA; 6 Nov 2009 14:28:03 -0000 From: Vladimir Prus To: gdb-patches@sources.redhat.com Subject: [MI] Prevent program output from mixing with "^running". Date: Fri, 06 Nov 2009 14:28:00 -0000 User-Agent: KMail/1.12.90 (Linux/2.6.24-25-generic; KDE/4.3.73; i686; svn-1043485; 2009-11-01) MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_8JD9K6QrV7ipaYU" Message-Id: <200911061728.12893.vladimir@codesourcery.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-11/txt/msg00111.txt.bz2 --Boundary-00=_8JD9K6QrV7ipaYU Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-length: 343 We have run into a case where the output of the programm being debugger got inserted between the MI token and "^running", confusing the frontend quite considerably. This was on Windows, so pseudoterminals are not a solution. I've checked in this patch to address this. There's no testcase, since reproducing this is tricky. Thanks, Volodya --Boundary-00=_8JD9K6QrV7ipaYU Content-Type: text/x-patch; charset="UTF-8"; name="token-final.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="token-final.diff" Content-length: 1389 Index: gdb/ChangeLog =================================================================== RCS file: /cvs/src/src/gdb/ChangeLog,v retrieving revision 1.11035 diff -u -p -r1.11035 ChangeLog --- gdb/ChangeLog 5 Nov 2009 23:18:00 -0000 1.11035 +++ gdb/ChangeLog 6 Nov 2009 14:24:59 -0000 @@ -1,3 +1,12 @@ +2009-11-06 Vladimir Prus + + Prevent program output from mix with "^running". + + gdb/ + * mi/mi-interp.c (mi_on_resume): Output token + and "^running" together, so that nothing else gets + in between. + 2009-11-05 Daniel Jacobowitz * dwarf2read.c (struct dwarf2_cu): Remove ranges_offset and Index: gdb/mi/mi-interp.c =================================================================== RCS file: /cvs/src/src/gdb/mi/mi-interp.c,v retrieving revision 1.51 diff -u -p -r1.51 mi-interp.c --- gdb/mi/mi-interp.c 19 Oct 2009 09:51:42 -0000 1.51 +++ gdb/mi/mi-interp.c 6 Nov 2009 14:24:59 -0000 @@ -438,9 +438,8 @@ mi_on_resume (ptid_t ptid) In future (MI3), we'll be outputting "^done" here. */ if (!running_result_record_printed && mi_proceeded) { - if (current_token) - fputs_unfiltered (current_token, raw_stdout); - fputs_unfiltered ("^running\n", raw_stdout); + fprintf_unfiltered (raw_stdout, "%s^running\n", + current_token ? current_token : ""); } if (PIDGET (ptid) == -1) --Boundary-00=_8JD9K6QrV7ipaYU--