From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31236 invoked by alias); 10 Oct 2012 11:18:00 -0000 Received: (qmail 31228 invoked by uid 22791); 10 Oct 2012 11:17:58 -0000 X-SWARE-Spam-Status: No, hits=-3.9 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 10 Oct 2012 11:17:51 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1TLuIQ-0007Uc-Ae from Dmitry_Kozlov@mentor.com for gdb-patches@sourceware.org; Wed, 10 Oct 2012 04:17:50 -0700 Received: from SVR-IES-FEM-02.mgc.mentorg.com ([137.202.0.106]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Wed, 10 Oct 2012 04:17:50 -0700 Received: from [127.0.0.1] (137.202.0.76) by SVR-IES-FEM-02.mgc.mentorg.com (137.202.0.106) with Microsoft SMTP Server id 14.1.289.1; Wed, 10 Oct 2012 12:17:47 +0100 Message-ID: <50755958.5090107@mentor.com> Date: Wed, 10 Oct 2012 11:18:00 -0000 From: Dmitry Kozlov User-Agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120912 Thunderbird/15.0.1 MIME-Version: 1.0 To: , "'Stan_Shebs@mentor.com'" CC: Vladimir Prus , Yao Qi Subject: [PATCH] Modify trace-status output to always output stop-notes. Content-Type: multipart/mixed; boundary="------------030702070500060606000402" 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: 2012-10/txt/msg00158.txt.bz2 --------------030702070500060606000402 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Content-length: 481 Hi, accoriding to discussion in gdb mailing list I have added stop-notes as mandatory part of MI trace-status command. This makes processing of stop-notes on IDE side more uniform with trace-notes processing. Previously Yao mentioned that he implemented notifications that can be used to monitor trace-status, but putting stop-notes to trace-status looks more clear way because processing one extra trace-status parameter defferently from others. Stan, is it ok? Thank you --------------030702070500060606000402 Content-Type: text/x-patch; name="gdb-stop-notes.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="gdb-stop-notes.diff" Content-length: 2398 diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9196bc2..5ee6ceb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,8 +1,21 @@ +2012-10-10 Dmitry Kozlov + + * gdbserver/traicepoint.c (cmd_qtstatus): Modify trace-status output to + always output stop-notes. + * tracepoint.c (trace_status_mi): Modify trace status MI command output to + always output stop-notes. + (trace_save): Save stop-notes if any by tsave. + (parse_trace_status): Add parsing stop-notes. + 2012-10-04 Dmitry Kozlov diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c index 201a25b..60ba775 100644 --- a/gdb/gdbserver/tracepoint.c +++ b/gdb/gdbserver/tracepoint.c @@ -3657,7 +3657,7 @@ cmd_qtstatus (char *packet) "circular:%d;" "disconn:%d;" "starttime:%s;stoptime:%s;" - "username:%s:;notes:%s:", + "username:%s;notes:%s;stop-notes:%s", tracing ? 1 : 0, stop_reason_rsp, tracing_stop_tpnum, traceframe_count, traceframes_created, @@ -3665,7 +3665,7 @@ cmd_qtstatus (char *packet) circular_trace_buffer, disconnected_tracing, plongest (tracing_start_time), plongest (tracing_stop_time), - buf1, buf2); + buf1, buf2, buf3); } static void diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 0e44316..5ca6404 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -2164,6 +2164,7 @@ trace_status_mi (int on_stop) ui_out_field_string (uiout, "user-name", ts->user_name); ui_out_field_string (uiout, "notes", ts->notes); + ui_out_field_string (uiout, "stop-notes", ts->stop_desc); { char buf[100]; @@ -3062,6 +3063,13 @@ trace_save (const char *filename, int target_does_save) bin2hex ((gdb_byte *) ts->user_name, buf, 0); fprintf (fp, ";username:%s", buf); } + if (ts->stop_desc) + { + char *buf = (char *) xmalloc (strlen (ts->stop_desc) * 2 + 1); + + bin2hex ((gdb_byte *) ts->stop_desc, buf, 0); + fprintf (fp, ";stop-notes:%s", buf); + } fprintf (fp, "\n"); @@ -3991,6 +3999,14 @@ Status line: '%s'\n"), p, line); ts->notes[end] = '\0'; p = p3; } + else if (strncmp (p, "stop-notes", p1 - p) == 0) + { + ++p1; + ts->stop_desc= xmalloc (strlen (p) / 2); + end = hex2bin (p1, ts->stop_desc, (p3 - p1) / 2); + ts->stop_desc[end] = '\0'; + p = p3; + } else { /* Silently skip unknown optional info. */ --------------030702070500060606000402--