From patchwork Wed Oct 14 11:14:23 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: henrik.wallin@windriver.com X-Patchwork-Id: 9105 Received: (qmail 85423 invoked by alias); 14 Oct 2015 15:07:34 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 85324 invoked by uid 89); 14 Oct 2015 15:07:34 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=0.8 required=5.0 tests=AWL, BAYES_20, KAM_LAZY_DOMAIN_SECURITY, T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: mail.windriver.com Received: from mail.windriver.com (HELO mail.windriver.com) (147.11.1.11) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 14 Oct 2015 15:07:33 +0000 Received: from arn-build2.wrs.com (arn-build2.wrs.com [128.224.95.15]) by mail.windriver.com (8.15.2/8.15.1) with ESMTP id t9EBEZIT010717 for ; Wed, 14 Oct 2015 04:14:35 -0700 (PDT) Received: by arn-build2.wrs.com (Postfix, from userid 18580) id DAB7A220965; Wed, 14 Oct 2015 13:14:33 +0200 (CEST) From: henrik.wallin@windriver.com To: gdb-patches@sourceware.org Subject: [RFC][PATCH 05/15] Fix crash when tstart after detach. Date: Wed, 14 Oct 2015 13:14:23 +0200 Message-Id: <49392b36dcf57bbe3f941d9dd684e91c734a99f6.1444820235.git.henrik.wallin@windriver.com> In-Reply-To: References: In-Reply-To: References: From: Par Olsson When calling tstart after detaching the process, gdbserver tries to access inferior memory which results in a crash. Also add error message when calling tstart if there is no inferior. gdb/gdbserver/ChangeLog: * tracepoint.c (cmd_qtinit): Add check that inferior is present before calling clear_inferior_trace_buffer. (cmd_qtstart): Add check that inferior is present. Signed-off-by: Par Olsson Signed-off-by: Henrik Wallin --- gdb/gdbserver/tracepoint.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c index 78a5eb028b72..d2ad197e58ab 100644 --- a/gdb/gdbserver/tracepoint.c +++ b/gdb/gdbserver/tracepoint.c @@ -2402,7 +2402,8 @@ cmd_qtinit (char *packet) } clear_trace_buffer (); - clear_inferior_trace_buffer (); + if (agent_loaded_p ()) + clear_inferior_trace_buffer (); write_ok (packet); } @@ -3203,6 +3204,13 @@ cmd_qtstart (char *packet) struct tracepoint *tpoint, *prev_ftpoint, *prev_stpoint; CORE_ADDR tpptr = 0, prev_tpptr = 0; + if (current_thread == NULL) + { + trace_debug ("Trying to start the trace without inferior"); + strcpy (packet, "E.No process attached."); + return; + } + trace_debug ("Starting the trace"); /* Pause all threads temporarily while we patch tracepoints. */