From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 62989 invoked by alias); 11 Sep 2018 13:40:04 -0000 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 Received: (qmail 62971 invoked by uid 89); 11 Sep 2018 13:40:02 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: smtp.eu.adacore.com Received: from mel.act-europe.fr (HELO smtp.eu.adacore.com) (194.98.77.210) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 11 Sep 2018 13:40:01 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id 29B8F81F6E; Tue, 11 Sep 2018 15:39:59 +0200 (CEST) Received: from smtp.eu.adacore.com ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dCQDAWwgtEMD; Tue, 11 Sep 2018 15:39:59 +0200 (CEST) Received: from Xaviers-MacBook-Pro.local (static-css-csd-010062.business.bouyguestelecom.com [176.162.10.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.eu.adacore.com (Postfix) with ESMTPSA id CE6BE81386; Tue, 11 Sep 2018 15:39:58 +0200 (CEST) Subject: Re: [RFA 5/5 v3] Darwin: fix SIGTRAP when debugging To: Simon Marchi Cc: gdb-patches@sourceware.org, brobecker@adacore.com, tom@tromey.com References: <1536582779-12182-1-git-send-email-roirand@adacore.com> <26053bf8ea4ba887967ecc4747f94c2b@polymtl.ca> From: Xavier Roirand Message-ID: <709eabd2-62ce-e617-2911-6fa6b8dc3c10@adacore.com> Date: Tue, 11 Sep 2018 13:40:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <26053bf8ea4ba887967ecc4747f94c2b@polymtl.ca> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2018-09/txt/msg00330.txt.bz2 Thanks. Pushed to master. https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=de1ec836c8cc4eeb68e3e4eb8223eeff9840546e Le 9/10/18 à 2:52 PM, Simon Marchi a écrit : > On 2018-09-10 13:32, Xavier Roirand wrote: >> Debugging a program under Darwin does not work: >> >> (gdb) start >> Temporary breakpoint 1 at 0x100000fb4: file /tmp/helloworld.c, line 1. >> Starting program: /private/tmp/helloworld >> [New Thread 0x2903 of process 60326] >> During startup program terminated with signal SIGTRAP, Trace/breakpoint >> trap. >> >> Field signaled from darwin_thread_info is not initialized thus signal >> sent to the debuggee is considered as not sent by GDB whereas it should. >> >> This patch fixes this problem and also updates (change type and/or >> initialize) other fields in the same structure at the same time. >> >> gdb/ChangeLog: >> >>         * darwin-nat.h (struct darwin_thread_info) >     inf_port, msg_state>: Initialize. >>         (struct darwin_thread_info) : Change >>         type and initialize. >>         (struct darwin_thread_info) : Initialize. >> >> Change-Id: I0fe2a6985df9d0dfcc8a2a258a3ef70cfa19b403 >> --- >>  gdb/darwin-nat.h | 12 ++++++------ >>  1 file changed, 6 insertions(+), 6 deletions(-) >> >> diff --git a/gdb/darwin-nat.h b/gdb/darwin-nat.h >> index 5965df08ab6..89a7c06f6a1 100644 >> --- a/gdb/darwin-nat.h >> +++ b/gdb/darwin-nat.h >> @@ -114,25 +114,25 @@ enum darwin_msg_state >>  struct darwin_thread_info : public private_thread_info >>  { >>    /* The thread port from a GDB point of view.  */ >> -  thread_t gdb_port; >> +  thread_t gdb_port = 0; >> >>    /* The thread port from the inferior point of view.  Not to be used >> inside >>       gdb except for get_ada_task_ptid.  */ >> -  thread_t inf_port; >> +  thread_t inf_port = 0; >> >>    /* Current message state. >>       If the kernel has sent a message it expects a reply and the >> inferior >>       can't be killed before.  */ >> -  enum darwin_msg_state msg_state; >> +  enum darwin_msg_state msg_state = DARWIN_RUNNING; >> >>    /* True if this thread is single-stepped.  */ >> -  unsigned char single_step; >> +  bool single_step = false; >> >>    /* True if a signal was manually sent to the thread.  */ >> -  unsigned char signaled; >> +  bool signaled = false; >> >>    /* The last exception received.  */ >> -  struct darwin_exception_msg event; >> +  struct darwin_exception_msg event {}; >>  }; >>  typedef struct darwin_thread_info darwin_thread_t; > > LGTM.  You do have push access I believe, is that right? > > Simon