Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Kevin Pouget <kevin.pouget@gmail.com>
To: Doug Evans <dje@google.com>
Cc: Eli Zaretskii <eliz@gnu.org>,
	gdb-patches@sourceware.org, pmuldoon@redhat.com
Subject: Re: [PATCH] Add bp_location to Python interface
Date: Wed, 11 Jan 2012 09:05:00 -0000	[thread overview]
Message-ID: <CAPftXU+R6kZqwF0ZFhc_dBQW54z__581rgLgbift3DcGLcCLhA@mail.gmail.com> (raw)
In-Reply-To: <CADPb22Sj1SmW0u+usg6FfmrteOuv7inQWgd8YqxdMCuaH=KHdg@mail.gmail.com>

On Tue, Jan 10, 2012 at 11:18 PM, Doug Evans <dje@google.com> wrote:
> On Tue, Jan 10, 2012 at 6:50 AM, Kevin Pouget <kevin.pouget@gmail.com> wrote:
>>>> +@defun BpLocation.is_valid ()
>>>> +Returns @code{True} if the @code{gdb.BpLocation} object is valid,
>>>> +@code{False} if not.  A @code{gdb.BpLocation} object may be invalidated by
>>>> +GDB at any moment for internal reasons.  All other @code{gdb.BpLocation}
>>>> +methods and attributes will throw an exception if the object is invalid.
>>>
>>> @value{GDBN} instead of "GDB".
>>>
>>> In any case, the last 2 sentences sound scary: I could interpret them
>>> as meaning I cannot trust the locations at all.  If that is indeed so,
>>> what use are they?
>>
>> that's already discussed above, but I don't want you to be scared, so
>> let me explain what I meant:
>> it's not "at any moment", but rather "after any call to GDB's Python
>> interface". We may want to say that it's only breakpoint or
>> execution-related calls, but _I_ can't ensure that this is true, and
>> it 'might' change in the future:
>>
>>> A @code{gdb.BpLocation} object may be invalidated during
>>> any call to @{GDB}'s API for internal reasons (for instance, but not limited to,
>>> breakpoint or execution-related mechanisms).
>>
>> (I'm not sure what's the right Python term here for 'mechanisms',
>> reading/writing an attribute may trigger internal functions, so 'call'
>> or 'function' seem not to suit very well)
>
> Don't take this as a requirement, but this volatility isn't a property
> of python's BpLocations,
> Thus I'd rather see the general discussion of why breakpoint locations
> are volatile, scary, whatever, elsewhere, and just have a link to that
> documentation here.
> I think that will help clear things up: In the breakpoints section of
> the manual just state what breakpoint locations are, what their
> properties are, etc.  Then in the above docs you don't have to worry
> so much about scaryness or whatever: Whatever issues locations have,
> users already need to be at least somewhat aware of them.
>
> Another reason to do this is that when Guile scripting gets added, we
> don't want to have to document these issues twice. :-)

I'm not sure we can really move it away from the Python/Guile API,
because, AFAIU, this volatile aspect if purely internal. 'Normal'
users won't ever see it.

> $ i b
> Num     Type           Disp Enb Address            What
> 1       breakpoint     keep y    <MULTIPLE>
>         1.1                         y     0x4562c0 in main at ../../../git/gdb/gdb/gdb.c:26 inf 2
>         1.2                         y     0x4562c0 in main at ../../../git/gdb/gdb/gdb.c:26 inf 1

will remain the same all the time, but the objects (both in Python and
their GDB backends) in gdb.breakpoints()[0].locations() will be
deleted and re-created at various moments (cf. previous discussions).
So far, I couldn't really understand what's the rational behind that
...

[I'm not sure how well you know this part of GDB, please don't
hesitate to correct me if I'm wrong]


Kevin


  reply	other threads:[~2012-01-11  9:03 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-08 10:17 Kevin Pouget
2011-12-08 13:39 ` Phil Muldoon
2011-12-08 14:28   ` Kevin Pouget
2011-12-08 14:56 ` Phil Muldoon
2011-12-09 13:49   ` Kevin Pouget
2011-12-09 14:15     ` Phil Muldoon
2011-12-13 15:55       ` Kevin Pouget
2012-01-09 11:47         ` Kevin Pouget
2012-01-09 17:23           ` Eli Zaretskii
2012-01-10 15:09             ` Kevin Pouget
2012-01-10 16:03               ` Kevin Pouget
2012-01-10 17:25               ` Eli Zaretskii
2012-01-11 10:16                 ` Kevin Pouget
2012-01-11 10:27                   ` Eli Zaretskii
2012-01-10 22:24               ` Doug Evans
2012-01-11  9:05                 ` Kevin Pouget [this message]
2012-01-11 19:45                   ` Doug Evans
2012-01-27 13:04                     ` Kevin Pouget
2012-03-30 19:51                       ` Tom Tromey
2012-04-03 10:35                         ` Kevin Pouget
2012-04-03 12:15                           ` Phil Muldoon
2012-04-03 14:43                             ` Paul_Koning
2012-04-04  8:36                               ` Kevin Pouget
2012-05-09  7:18                                 ` Kevin Pouget
2012-04-05 16:27                           ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPftXU+R6kZqwF0ZFhc_dBQW54z__581rgLgbift3DcGLcCLhA@mail.gmail.com \
    --to=kevin.pouget@gmail.com \
    --cc=dje@google.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=pmuldoon@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox