From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27739 invoked by alias); 6 Oct 2011 10:59:19 -0000 Received: (qmail 27726 invoked by uid 22791); 6 Oct 2011 10:59:16 -0000 X-SWARE-Spam-Status: No, hits=-6.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 06 Oct 2011 10:58:59 +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 p96AwsEv020429 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 6 Oct 2011 06:58:54 -0400 Received: from localhost.localdomain (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p96AwqPe015502; Thu, 6 Oct 2011 06:58:52 -0400 From: Phil Muldoon To: gdb-patches@sourceware.org Subject: [python] [doc] PR 12930/12802 (clarify Breakpoint::stop doco) CC: eli@gnu.org, pedro@codesourcery.com Reply-to: pmuldoon@redhat.com X-URL: http://www.redhat.com Date: Thu, 06 Oct 2011 10:59:00 -0000 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-IsSubscribed: yes 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: 2011-10/txt/msg00149.txt.bz2 This patch address the PRs 12930, and 12802 which both arise from confusion regarding the scope of actions in the Breakpoint::stop callback. I have added some documentation to clarify. Pedro, please excuse the gratuitous CC, but beyond Eli's normal review can you please fact-check the documentation to make sure I am not writing something about states that is incorrect. Cheers, Phil -- 2011-10-06 Phil Muldoon PR python/12930 PR python/12802 * gdb.texinfo (Breakpoints In Python): Clarify behavior in the stop method. -- diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index dd0f7f6..0a66f5c 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -23552,6 +23552,18 @@ methods have a chance to execute at that location. In this scenario if one of the methods returns @code{True} but the others return @code{False}, the inferior will still be stopped. +When @value{GDBN} executes each @code{stop} method, the inferior has +been stopped, but the internal state accounting for that inferior is +undetermined. As the return value from each @code{stop} method has the +potential to instruct @value{GDBN} to restart the inferior, or keep it +in a stopped state, this indeterminate state will remain until the +execution scope of each @code{stop} method has been completed. Therefore +you should not alter the execution state of the inferior (IE step, next, +etc), alter the current frame context (IE change the current active +frame), or alter, add or delete any breakpoint. As a general rule, you +should not alter any data within @value{GDBN} or the inferior at this +time. + Example @code{stop} implementation: @smallexample