From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 74735 invoked by alias); 3 Mar 2015 12:29:08 -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 74723 invoked by uid 89); 3 Mar 2015 12:29:07 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 03 Mar 2015 12:29:06 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t23CT4ES019402 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 3 Mar 2015 07:29:04 -0500 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t23CT2l4023664; Tue, 3 Mar 2015 07:29:03 -0500 Message-ID: <54F5A90E.8050704@redhat.com> Date: Tue, 03 Mar 2015 12:29:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Yao Qi , Sergio Durigan Junior CC: gdb-patches@sourceware.org Subject: Re: [RFC] Support command "catch syscall" properly on different targets References: <1425047015-1906-1-git-send-email-qiyaoltc@gmail.com> <877fv3kqx1.fsf@redhat.com> <86lhjei8md.fsf@gmail.com> In-Reply-To: <86lhjei8md.fsf@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2015-03/txt/msg00074.txt.bz2 On 03/03/2015 12:11 PM, Yao Qi wrote: > Sergio Durigan Junior writes: > >> You mean it's possible to use "catch syscall" on HP-UX targets? I >> wonder how it works. > > Yes, that is what I meant, at least that is what I can tell from the > source. TARGET_WAITKIND_SYSCALL_ENTRY / TARGET_WAITKIND_SYSCALL_RETURN was supported by the HP-UX target long before GNU/Linux gained support. See inf-ttrace.c. However, I don't think "catch syscall" itself ever did. inf_ttrace_enable_syscall_events is only used for watchpoints. Not that I find we should go fix it, mind you. In gdb 6.8, for example, we had: /* Be careful not to try to gather much state about a thread that's in a syscall. It's frequently a losing proposition. */ case TARGET_WAITKIND_SYSCALL_ENTRY: if (debug_infrun) fprintf_unfiltered (gdb_stdlog, "infrun: TARGET_WAITKIND_SYSCALL_ENTRY\n"); resume (0, TARGET_SIGNAL_0); prepare_to_wait (ecs); return; /* Before examining the threads further, step this thread to get it entirely out of the syscall. (We get notice of the event when the thread is just on the verge of exiting a syscall. Stepping one instruction seems to get it back into user code.) */ case TARGET_WAITKIND_SYSCALL_RETURN: if (debug_infrun) fprintf_unfiltered (gdb_stdlog, "infrun: TARGET_WAITKIND_SYSCALL_RETURN\n"); target_resume (ecs->ptid, 1, TARGET_SIGNAL_0); prepare_to_wait (ecs); return; I'd guess once this step after TARGET_WAITKIND_SYSCALL_RETURN finishes, watchpoints end up processed. Sounds like watchpoints are broken on hpux then. Not that anyone really cares though... Thanks, Pedro Alves